{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 变分法\n",
    "    变分法是处理泛函极值的数学工具. \n",
    "这篇笔记中，我们考虑依赖于多个函数的变分问题的推广. \n",
    "当涉及到多元泛函时，就会遇到一元泛函没有的新问题，如依赖于函数参数表示的变分问题，还有泛函的条件极值问题. 最后，我们还会讨论多元泛函的可动边界问题. \n",
    "\n",
    "多元泛函就是泛函的值会依赖于多个函数的泛函，例如最简单的多元泛函为二元泛函，其一般形式为 $\\mathcal{A}[\\cdot, \\cdot]$. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2021-02-03T18:23:45+08:00",
     "start_time": "2021-02-03T10:23:45.406Z"
    }
   },
   "outputs": [],
   "source": [
    "<<VariationalMethods`"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 3 多元泛函的变分问题\n",
    "在分析动力学中研究质点（或质点系）运动时，一个质点的运动由它的坐标对时间的依赖关系确定. \n",
    "研究这种较复杂的情形就会导出依赖于多个函数的变分问题，即（具有几个函数作为变元的）**多元泛函**的变分问题. "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 3.1 依赖于多个函数的情形\n",
    "    空间曲线泛函\n",
    "这里先讨论两个未知函数的情形，对于多个未知函数的情形方法类似.\n",
    "\n",
    "### 3.1.1 依赖于两个函数\n",
    "**定理**【二元泛函的 Euler 方程组】\n",
    "设 $L \\in C^2[t_0,t_1]\\times\\mathbb{R}^4$，那么在 $C^2[t_0,t_1]$ 中使 $\\mathcal{A}[x,y]=\\int_{t_0}^{t_1} \n",
    "L(t,x,\\dot{x},y,\\dot{y})\\mathrm{d}t$ 取得极值且满足边界条件 $x(t_0)=x_0$，$x(t_1)=x_1$, \n",
    "$y(t_0)=y_0$, $y(t_1)=y_1$ 的曲线 $x=x(t), y=y(t)$ 必定满足欧拉方程组：\n",
    "$$\n",
    "L_x-\\frac{\\mathrm{d}}{\\mathrm{d}t}L_{\\dot{x}}=0, \\; \n",
    "L_y-\\frac{\\mathrm{d}}{\\mathrm{d}t}L_{\\dot{y}}=0.\n",
    "$$\n",
    "\n",
    "**证明**\n",
    "令 $\\Phi(\\alpha,\\beta)=\\mathcal{A}\\left[x^*+\\alpha\\eta,y^*+\\beta\\xi\\right]$，其中 $x^*, y^*$ 为极值函数，\n",
    "$\\eta, \\xi\\in C_0^1[t_0,t_1]$. 根据泛函取极值的**必要条件**，有\n",
    "$$\n",
    "\\left.\\frac{\\partial\\Phi(\\alpha,\\beta)}{\\partial\\alpha}\\right|_{(0,0)}=0,\n",
    "\\left.\\frac{\\partial\\Phi(\\alpha,\\beta)}{\\partial\\beta}\\right|_{(0,0)}=0\n",
    "$$\n",
    "利用**定理**【Euler 方程】的证明方法，便得到欧拉方程组. \n",
    "\n",
    "具体地，我们有\n",
    "$$\n",
    "\\begin{aligned}\n",
    "\\Phi(\\alpha,\\beta)-\\Phi(0,0) \n",
    "&= \\int_{t_0}^{t_1}\n",
    "L(t,x^*+\\alpha\\eta,\\dot{x}^*+\\alpha\\dot{\\eta},y^*+\\beta\\xi,\\dot{y}^*+\\beta\\dot{\\xi}) - \n",
    "L(t,x^*,\\dot{x}^*,y^*,\\dot{y}^*)\\mathrm{d}t\\\\\n",
    "&= \\int_{t_0}^{t_1} \\alpha\\left(\\frac{\\partial L}{\\partial x}\\eta+\n",
    "\\frac{\\partial L}{\\partial \\dot{x}}\\dot{\\eta}\\right) + \n",
    "\\beta\\left(\\frac{\\partial L}{\\partial y}\\xi+\n",
    "\\frac{\\partial L}{\\partial \\dot{y}}\\dot{\\xi}\\right)\n",
    "\\mathrm{d}t + \n",
    "\\mathcal{O}\\left(\\alpha^2\\right) + \n",
    "\\mathcal{O}\\left(\\beta^2\\right)\n",
    "\\end{aligned}\n",
    "$$\n",
    "\n",
    "根据假设条件，分部积分后的边界项等于0. 对于极值曲线 $x,y$（$\\alpha=\\beta=0$），我们有\n",
    "\n",
    "$$\n",
    "\\delta \\mathcal{A} = \\left(\\frac{\\partial\\Phi}{\\partial\\alpha} + \n",
    "\\frac{\\partial\\Phi}{\\partial\\beta}\\right) = \\int_{t_0}^{t_1} \n",
    "\\left[\\frac{\\partial L}{\\partial x} - \\frac{\\mathrm{d}}{\\mathrm{d}t}\n",
    "\\left(\\frac{\\partial L}{\\partial \\dot{x}}\\right)\\right]\\eta + \n",
    "\\left[\\frac{\\partial L}{\\partial y} - \\frac{\\mathrm{d}}{\\mathrm{d}t}\n",
    "\\left(\\frac{\\partial L}{\\partial \\dot{y}}\\right)\\right]\\xi\n",
    "\\mathrm{d}t = 0\n",
    "$$\n",
    "\n",
    "我们若假设两个变分 $\\eta(t)$ 和 $\\xi(t)$ 是独立的（即忽略了约束），\n",
    "那么我们就能得到泛函极值的必要条件对应的欧拉方程组. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2021-02-02T16:45:35+08:00",
     "start_time": "2021-02-02T08:45:35.371Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div><img alt=\"Output\" src=\"\"></div>"
      ],
      "text/plain": [
       "FormBox[RowBox[{\"{\", RowBox[{RowBox[{RowBox[{FractionBox[RowBox[\n",
       "\n",
       " \n",
       ">                {\"∂\", RowBox[{\"η\", \"(\", \"t\", \")\"}]}], RowBox[{\"∂\", \"t\"}], \n",
       "\n",
       " \n",
       ">               Rule[MultilineFunction, None]], \" \", \n",
       "\n",
       " \n",
       ">              FractionBox[RowBox[{\"∂\", \n",
       "\n",
       " \n",
       ">                 RowBox[{\"L\", \"(\", RowBox[{\"t\", \",\", \n",
       "\n",
       " \n",
       ">                     RowBox[{SuperscriptBox[\"x\", \"*\"], \"(\", \"t\", \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                     RowBox[{SuperscriptBox[RowBox[{\"(\", \n",
       "\n",
       " \n",
       ">                          SuperscriptBox[\"x\", \"*\"], \")\"}], \"′\", \n",
       "\n",
       " \n",
       ">                        Rule[MultilineFunction, None]], \"\", \n",
       "\n",
       " \n",
       ">                       RowBox[{\"(\", \"t\", \")\"}]}], \",\", \n",
       "\n",
       " \n",
       ">                     RowBox[{SuperscriptBox[\"y\", \"*\"], \"(\", \"t\", \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                     RowBox[{SuperscriptBox[RowBox[{\"(\", SuperscriptBox[\"y\", \"*\"], \n",
       "\n",
       " \n",
       ">                          \")\"}], \"′\", Rule[MultilineFunction, None]], \"\", \n",
       "\n",
       " \n",
       ">                       RowBox[{\"(\", \"t\", \")\"}]}]}], \")\"}]}], \n",
       "\n",
       " \n",
       ">               RowBox[{\"∂\", RowBox[{SuperscriptBox[RowBox[{\"(\", \n",
       "\n",
       " \n",
       ">                      SuperscriptBox[\"x\", \"*\"], \")\"}], \"′\", \n",
       "\n",
       " \n",
       ">                    Rule[MultilineFunction, None]], \"\", RowBox[{\"(\", \"t\", \")\"}]}]}], \n",
       "\n",
       " \n",
       ">               Rule[MultilineFunction, None]]}], \"+\", \n",
       "\n",
       " \n",
       ">            RowBox[{RowBox[{\"η\", \"(\", \"t\", \")\"}], \" \", \n",
       "\n",
       " \n",
       ">              FractionBox[RowBox[{\"∂\", \n",
       "\n",
       " \n",
       ">                 RowBox[{\"L\", \"(\", RowBox[{\"t\", \",\", \n",
       "\n",
       " \n",
       ">                     RowBox[{SuperscriptBox[\"x\", \"*\"], \"(\", \"t\", \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                     RowBox[{SuperscriptBox[RowBox[{\"(\", SuperscriptBox[\"x\", \"*\"], \n",
       "\n",
       " \n",
       ">                          \")\"}], \"′\", Rule[MultilineFunction, None]], \"\", \n",
       "\n",
       " \n",
       ">                       RowBox[{\"(\", \"t\", \")\"}]}], \",\", \n",
       "\n",
       " \n",
       ">                     RowBox[{SuperscriptBox[\"y\", \"*\"], \"(\", \"t\", \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                     RowBox[{SuperscriptBox[RowBox[{\"(\", SuperscriptBox[\"y\", \"*\"], \n",
       "\n",
       " \n",
       ">                          \")\"}], \"′\", Rule[MultilineFunction, None]], \"\", \n",
       "\n",
       " \n",
       ">                       RowBox[{\"(\", \"t\", \")\"}]}]}], \")\"}]}], \n",
       "\n",
       " \n",
       ">               RowBox[{\"∂\", RowBox[{SuperscriptBox[\"x\", \"*\"], \"(\", \"t\", \")\"}]}], \n",
       "\n",
       " \n",
       ">               Rule[MultilineFunction, None]]}]}], \",\", \n",
       "\n",
       " \n",
       ">          RowBox[{RowBox[{FractionBox[RowBox[{\"∂\", RowBox[{\"ξ\", \"(\", \"t\", \")\"}]}], \n",
       "\n",
       " \n",
       ">               RowBox[{\"∂\", \"t\"}], Rule[MultilineFunction, None]], \" \", \n",
       "\n",
       " \n",
       ">              FractionBox[RowBox[{\"∂\", \n",
       "\n",
       " \n",
       ">                 RowBox[{\"L\", \"(\", RowBox[{\"t\", \",\", \n",
       "\n",
       " \n",
       ">                     RowBox[{SuperscriptBox[\"x\", \"*\"], \"(\", \"t\", \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                     RowBox[{SuperscriptBox[RowBox[{\"(\", SuperscriptBox[\"x\", \"*\"], \n",
       "\n",
       " \n",
       ">                          \")\"}], \"′\", Rule[MultilineFunction, None]], \"\", \n",
       "\n",
       " \n",
       ">                       RowBox[{\"(\", \"t\", \")\"}]}], \",\", \n",
       "\n",
       " \n",
       ">                     RowBox[{SuperscriptBox[\"y\", \"*\"], \"(\", \"t\", \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                     RowBox[{SuperscriptBox[RowBox[{\"(\", SuperscriptBox[\"y\", \"*\"], \n",
       "\n",
       " \n",
       ">                          \")\"}], \"′\", Rule[MultilineFunction, None]], \"\", \n",
       "\n",
       " \n",
       ">                       RowBox[{\"(\", \"t\", \")\"}]}]}], \")\"}]}], \n",
       "\n",
       " \n",
       ">               RowBox[{\"∂\", RowBox[{SuperscriptBox[RowBox[{\"(\", \n",
       "\n",
       " \n",
       ">                      SuperscriptBox[\"y\", \"*\"], \")\"}], \"′\", \n",
       "\n",
       " \n",
       ">                    Rule[MultilineFunction, None]], \"\", RowBox[{\"(\", \"t\", \")\"}]}]}], \n",
       "\n",
       " \n",
       ">               Rule[MultilineFunction, None]]}], \"+\", \n",
       "\n",
       " \n",
       ">            RowBox[{RowBox[{\"ξ\", \"(\", \"t\", \")\"}], \" \", \n",
       "\n",
       " \n",
       ">              FractionBox[RowBox[{\"∂\", \n",
       "\n",
       " \n",
       ">                 RowBox[{\"L\", \"(\", RowBox[{\"t\", \",\", \n",
       "\n",
       " \n",
       ">                     RowBox[{SuperscriptBox[\"x\", \"*\"], \"(\", \"t\", \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                     RowBox[{SuperscriptBox[RowBox[{\"(\", SuperscriptBox[\"x\", \"*\"], \n",
       "\n",
       " \n",
       ">                          \")\"}], \"′\", Rule[MultilineFunction, None]], \"\", \n",
       "\n",
       " \n",
       ">                       RowBox[{\"(\", \"t\", \")\"}]}], \",\", \n",
       "\n",
       " \n",
       ">                     RowBox[{SuperscriptBox[\"y\", \"*\"], \"(\", \"t\", \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                     RowBox[{SuperscriptBox[RowBox[{\"(\", SuperscriptBox[\"y\", \"*\"], \n",
       "\n",
       " \n",
       ">                          \")\"}], \"′\", Rule[MultilineFunction, None]], \"\", \n",
       "\n",
       " \n",
       ">                       RowBox[{\"(\", \"t\", \")\"}]}]}], \")\"}]}], \n",
       "\n",
       " \n",
       ">               RowBox[{\"∂\", RowBox[{SuperscriptBox[\"y\", \"*\"], \"(\", \"t\", \")\"}]}], \n",
       "\n",
       " \n",
       ">               Rule[MultilineFunction, None]]}]}]}], \"}\"}], TraditionalForm]\n"
      ]
     },
     "execution_count": 14,
     "metadata": {
      "text/html": [],
      "text/plain": []
     },
     "output_type": "execute_result"
    }
   ],
   "source": [
    "(*两个一元函数*)\n",
    "Block[\n",
    "{f, L, t, x, xdot, y, ydot, a, b, \\[Eta], \\[Xi]},\n",
    "x[t, a] := SuperStar[x][t] + a*\\[Eta][t];\n",
    "y[t, b] := SuperStar[y][t] + b*\\[Xi][t];\n",
    "xdot[t_,a_] := D[x[t,a], t];\n",
    "ydot[t_,b_] := D[y[t,b], t];\n",
    "f = L[t, x[t,a], xdot[t,a], y[t,b], ydot[t,b]];\n",
    "{D[f, a], D[f, b]}/.a->0/.b->0//pdConv//TableForm\n",
    "]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "忽略计算结果中的函数 $L$ 所依赖的变量，有\n",
    "\n",
    "$$\n",
    "\\frac{\\partial L}{\\partial \\dot{x}}\\dot{\\eta}(t) + \\frac{\\partial L}{\\partial x}\\eta(t),\\; \n",
    "\\frac{\\partial L}{\\partial \\dot{y}}\\dot{\\xi}(t) + \\frac{\\partial L}{\\partial y}\\xi(t)\n",
    "$$\n",
    "分部积分，化简得到 Euler 方程组\n",
    "\n",
    "$$\\boxed{- \n",
    "\\frac{\\mathrm{d}}{\\mathrm{d}t}\\left(\\frac{\\partial L}{\\partial \\dot{x}}\\right) + \n",
    "\\frac{\\partial L}{\\partial x} = 0, \\; - \n",
    "\\frac{\\mathrm{d}}{\\mathrm{d}t} \\left(\\frac{\\partial L}{\\partial \\dot{y}}\\right) + \n",
    "\\frac{\\partial L}{\\partial y} = 0}\n",
    "$$"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2021-02-02T17:08:54+08:00",
     "start_time": "2021-02-02T09:08:54.787Z"
    }
   },
   "outputs": [],
   "source": [
    "Options[EulerEqn1] = {eXpand -> False};\n",
    "(* Euler equations for a system of variables *)\n",
    "\n",
    "EulerEqn1[dichte_, depend_List, independ_, options___] :=\n",
    "  Module[{f0, rule, fh, e, w, y, expand, euler = {}, wtable,x$1h},\n",
    "  (*--- 检查选项 ---*)\n",
    "   {expand} = {eXpand} /. {options} /. Options[EulerEqn1]; \n",
    "    wtable = Table[w[i], {i, 1, Length[depend]}]; \n",
    "   (*--- 定义函数变分 ---*)\n",
    "    f0 = Function[x$1h, y[x$1h] + e*w[x$1h]];\n",
    "    (*--- 定义替换规则---*)\n",
    "    rules[i_] :=\n",
    "     (b_.)*Derivative[n_][wtable[[i]]][independ] :> \n",
    "      (-1)^n*HoldForm[D[b, {independ, n}]];\n",
    "    (*--- 对因变量的变分 ---*)\n",
    "    Do[fh = dichte /. depend[[j]] -> f0 /.\n",
    "\t{x$1h -> independ, y -> depend[[j]], w -> wtable[[j]]};\n",
    "    (*--- 对参数求导，置零 ---*)\n",
    "      fh = Expand[D[fh, e] /. e -> 0]; \n",
    "    (*--- 变换到 w ---*)\n",
    "      fh = fh /. rules[j] /. wtable[[j]][independ] -> 1; AppendTo[euler, fh==0],\n",
    "     {j, 1, Length[depend]}]; \n",
    "    (*--- 欧拉方程 ---*)\n",
    "     If[expand, euler = ReleaseHold[euler], euler]]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2021-02-02T17:08:55+08:00",
     "start_time": "2021-02-02T09:08:55.548Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div><img alt=\"Output\" src=\"\"></div>"
      ],
      "text/plain": [
       "FormBox[RowBox[{\"{\", RowBox[{RowBox[{RowBox[{RowBox[{\"-\", \n",
       "\n",
       " \n",
       ">                RowBox[{FractionBox[RowBox[{SuperscriptBox[\"∂\", \"2\"], \n",
       "\n",
       " \n",
       ">                     RowBox[{\"y\", \"(\", \"t\", \")\"}]}], \n",
       "\n",
       " \n",
       ">                   RowBox[{\"∂\", SuperscriptBox[\"t\", \"2\"]}], \n",
       "\n",
       " \n",
       ">                   Rule[MultilineFunction, None]], \" \", \n",
       "\n",
       " \n",
       ">                  FractionBox[RowBox[{SuperscriptBox[\"∂\", \"2\"], \n",
       "\n",
       " \n",
       ">                     RowBox[{\"L\", \"(\", \n",
       "\n",
       " \n",
       ">                       RowBox[{\"t\", \",\", RowBox[{\"x\", \"(\", \"t\", \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                         RowBox[{SuperscriptBox[\"x\", \"′\", \n",
       "\n",
       " \n",
       ">                            Rule[MultilineFunction, None]], \"(\", \"t\", \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                         RowBox[{\"y\", \"(\", \"t\", \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                         RowBox[{SuperscriptBox[\"y\", \"′\", \n",
       "\n",
       " \n",
       ">                            Rule[MultilineFunction, None]], \"(\", \"t\", \")\"}]}], \")\"}]}\\\n",
       "\n",
       " \n",
       ">   ], RowBox[{RowBox[{\"∂\", RowBox[{SuperscriptBox[\"x\", \"′\", \n",
       "\n",
       " \n",
       ">                          Rule[MultilineFunction, None]], \"(\", \"t\", \")\"}]}], \" \", \n",
       "\n",
       " \n",
       ">                     RowBox[{\"∂\", RowBox[{SuperscriptBox[\"y\", \"′\", \n",
       "\n",
       " \n",
       ">                          Rule[MultilineFunction, None]], \"(\", \"t\", \")\"}]}]}], \n",
       "\n",
       " \n",
       ">                   Rule[MultilineFunction, None]]}]}], \"-\", \n",
       "\n",
       " \n",
       ">              FractionBox[RowBox[{SuperscriptBox[\"∂\", \"2\"], \n",
       "\n",
       " \n",
       ">                 RowBox[{\"L\", \"(\", RowBox[{\"t\", \",\", RowBox[{\"x\", \"(\", \"t\", \")\"}], \n",
       "\n",
       " \n",
       ">                     \",\", RowBox[{SuperscriptBox[\"x\", \"′\", \n",
       "\n",
       " \n",
       ">                        Rule[MultilineFunction, None]], \"(\", \"t\", \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                     RowBox[{\"y\", \"(\", \"t\", \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                     RowBox[{SuperscriptBox[\"y\", \"′\", \n",
       "\n",
       " \n",
       ">                        Rule[MultilineFunction, None]], \"(\", \"t\", \")\"}]}], \")\"}]}], \n",
       "\n",
       " \n",
       ">               RowBox[{RowBox[{\"∂\", \"t\"}], \" \", \n",
       "\n",
       " \n",
       ">                 RowBox[{\"∂\", RowBox[{SuperscriptBox[\"x\", \"′\", \n",
       "\n",
       " \n",
       ">                      Rule[MultilineFunction, None]], \"(\", \"t\", \")\"}]}]}], \n",
       "\n",
       " \n",
       ">               Rule[MultilineFunction, None]], \"-\", \n",
       "\n",
       " \n",
       ">              RowBox[{FractionBox[RowBox[{\"∂\", RowBox[{\"x\", \"(\", \"t\", \")\"}]}], \n",
       "\n",
       " \n",
       ">                 RowBox[{\"∂\", \"t\"}], Rule[MultilineFunction, None]], \" \", \n",
       "\n",
       " \n",
       ">                FractionBox[RowBox[{SuperscriptBox[\"∂\", \"2\"], \n",
       "\n",
       " \n",
       ">                   RowBox[{\"L\", \"(\", \n",
       "\n",
       " \n",
       ">                     RowBox[{\"t\", \",\", RowBox[{\"x\", \"(\", \"t\", \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{SuperscriptBox[\"x\", \"′\", \n",
       "\n",
       " \n",
       ">                          Rule[MultilineFunction, None]], \"(\", \"t\", \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{\"y\", \"(\", \"t\", \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{SuperscriptBox[\"y\", \"′\", \n",
       "\n",
       " \n",
       ">                          Rule[MultilineFunction, None]], \"(\", \"t\", \")\"}]}], \")\"}]}], \n",
       "\n",
       " \n",
       ">                 RowBox[{RowBox[{\"∂\", RowBox[{\"x\", \"(\", \"t\", \")\"}]}], \" \", \n",
       "\n",
       " \n",
       ">                   RowBox[{\"∂\", RowBox[{SuperscriptBox[\"x\", \"′\", \n",
       "\n",
       " \n",
       ">                        Rule[MultilineFunction, None]], \"(\", \"t\", \")\"}]}]}], \n",
       "\n",
       " \n",
       ">                 Rule[MultilineFunction, None]]}], \"-\", \n",
       "\n",
       " \n",
       ">              RowBox[{FractionBox[RowBox[{\"∂\", RowBox[{\"y\", \"(\", \"t\", \")\"}]}], \n",
       "\n",
       " \n",
       ">                 RowBox[{\"∂\", \"t\"}], Rule[MultilineFunction, None]], \" \", \n",
       "\n",
       " \n",
       ">                FractionBox[RowBox[{SuperscriptBox[\"∂\", \"2\"], \n",
       "\n",
       " \n",
       ">                   RowBox[{\"L\", \"(\", \n",
       "\n",
       " \n",
       ">                     RowBox[{\"t\", \",\", RowBox[{\"x\", \"(\", \"t\", \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{SuperscriptBox[\"x\", \"′\", \n",
       "\n",
       " \n",
       ">                          Rule[MultilineFunction, None]], \"(\", \"t\", \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{\"y\", \"(\", \"t\", \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{SuperscriptBox[\"y\", \"′\", \n",
       "\n",
       " \n",
       ">                          Rule[MultilineFunction, None]], \"(\", \"t\", \")\"}]}], \")\"}]}], \n",
       "\n",
       " \n",
       ">                 RowBox[{RowBox[{\"∂\", \n",
       "\n",
       " \n",
       ">                     RowBox[{SuperscriptBox[\"x\", \"′\", \n",
       "\n",
       " \n",
       ">                        Rule[MultilineFunction, None]], \"(\", \"t\", \")\"}]}], \" \", \n",
       "\n",
       " \n",
       ">                   RowBox[{\"∂\", RowBox[{\"y\", \"(\", \"t\", \")\"}]}]}], \n",
       "\n",
       " \n",
       ">                 Rule[MultilineFunction, None]]}], \"-\", \n",
       "\n",
       " \n",
       ">              RowBox[{FractionBox[RowBox[{SuperscriptBox[\"∂\", \"2\"], \n",
       "\n",
       " \n",
       ">                   RowBox[{\"x\", \"(\", \"t\", \")\"}]}], \n",
       "\n",
       " \n",
       ">                 RowBox[{\"∂\", SuperscriptBox[\"t\", \"2\"]}], \n",
       "\n",
       " \n",
       ">                 Rule[MultilineFunction, None]], \" \", \n",
       "\n",
       " \n",
       ">                FractionBox[RowBox[{SuperscriptBox[\"∂\", \"2\"], \n",
       "\n",
       " \n",
       ">                   RowBox[{\"L\", \"(\", \n",
       "\n",
       " \n",
       ">                     RowBox[{\"t\", \",\", RowBox[{\"x\", \"(\", \"t\", \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{SuperscriptBox[\"x\", \"′\", \n",
       "\n",
       " \n",
       ">                          Rule[MultilineFunction, None]], \"(\", \"t\", \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{\"y\", \"(\", \"t\", \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{SuperscriptBox[\"y\", \"′\", \n",
       "\n",
       " \n",
       ">                          Rule[MultilineFunction, None]], \"(\", \"t\", \")\"}]}], \")\"}]}], \n",
       "\n",
       " \n",
       ">                 RowBox[{\"∂\", SuperscriptBox[RowBox[{SuperscriptBox[\"x\", \"′\", \n",
       "\n",
       " \n",
       ">                       Rule[MultilineFunction, None]], \"(\", \"t\", \")\"}], \"2\"]}], \n",
       "\n",
       " \n",
       ">                 Rule[MultilineFunction, None]]}], \"+\", \n",
       "\n",
       " \n",
       ">              FractionBox[RowBox[{\"∂\", \n",
       "\n",
       " \n",
       ">                 RowBox[{\"L\", \"(\", RowBox[{\"t\", \",\", RowBox[{\"x\", \"(\", \"t\", \")\"}], \n",
       "\n",
       " \n",
       ">                     \",\", RowBox[{SuperscriptBox[\"x\", \"′\", \n",
       "\n",
       " \n",
       ">                        Rule[MultilineFunction, None]], \"(\", \"t\", \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                     RowBox[{\"y\", \"(\", \"t\", \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                     RowBox[{SuperscriptBox[\"y\", \"′\", \n",
       "\n",
       " \n",
       ">                        Rule[MultilineFunction, None]], \"(\", \"t\", \")\"}]}], \")\"}]}], \n",
       "\n",
       " \n",
       ">               RowBox[{\"∂\", RowBox[{\"x\", \"(\", \"t\", \")\"}]}], \n",
       "\n",
       " \n",
       ">               Rule[MultilineFunction, None]]}], \"\", \"0\"}], \",\", \n",
       "\n",
       " \n",
       ">          RowBox[{RowBox[{RowBox[{\"-\", \n",
       "\n",
       " \n",
       ">                RowBox[{FractionBox[RowBox[{SuperscriptBox[\"∂\", \"2\"], \n",
       "\n",
       " \n",
       ">                     RowBox[{\"x\", \"(\", \"t\", \")\"}]}], \n",
       "\n",
       " \n",
       ">                   RowBox[{\"∂\", SuperscriptBox[\"t\", \"2\"]}], \n",
       "\n",
       " \n",
       ">                   Rule[MultilineFunction, None]], \" \", \n",
       "\n",
       " \n",
       ">                  FractionBox[RowBox[{SuperscriptBox[\"∂\", \"2\"], \n",
       "\n",
       " \n",
       ">                     RowBox[{\"L\", \"(\", \n",
       "\n",
       " \n",
       ">                       RowBox[{\"t\", \",\", RowBox[{\"x\", \"(\", \"t\", \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                         RowBox[{SuperscriptBox[\"x\", \"′\", \n",
       "\n",
       " \n",
       ">                            Rule[MultilineFunction, None]], \"(\", \"t\", \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                         RowBox[{\"y\", \"(\", \"t\", \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                         RowBox[{SuperscriptBox[\"y\", \"′\", \n",
       "\n",
       " \n",
       ">                            Rule[MultilineFunction, None]], \"(\", \"t\", \")\"}]}],\\\n",
       " \n",
       ">    \")\"}]}]\\\n",
       ", RowBox[{RowBox[{\"∂\", RowBox[{SuperscriptBox[\"x\", \"′\", \n",
       "\n",
       " \n",
       ">                          Rule[MultilineFunction, None]], \"(\", \"t\", \")\"}]}], \" \", \n",
       "\n",
       " \n",
       ">                     RowBox[{\"∂\", RowBox[{SuperscriptBox[\"y\", \"′\", \n",
       "\n",
       " \n",
       ">                          Rule[MultilineFunction, None]], \"(\", \"t\", \")\"}]}]}], \n",
       "\n",
       " \n",
       ">                   Rule[MultilineFunction, None]]}]}], \"-\", \n",
       "\n",
       " \n",
       ">              FractionBox[RowBox[{SuperscriptBox[\"∂\", \"2\"], \n",
       "\n",
       " \n",
       ">                 RowBox[{\"L\", \"(\", RowBox[{\"t\", \",\", RowBox[{\"x\", \"(\", \"t\", \")\"}], \n",
       "\n",
       " \n",
       ">                     \",\", RowBox[{SuperscriptBox[\"x\", \"′\", \n",
       "\n",
       " \n",
       ">                        Rule[MultilineFunction, None]], \"(\", \"t\", \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                     RowBox[{\"y\", \"(\", \"t\", \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                     RowBox[{SuperscriptBox[\"y\", \"′\", \n",
       "\n",
       " \n",
       ">                        Rule[MultilineFunction, None]], \"(\", \"t\", \")\"}]}], \")\"}]}], \n",
       "\n",
       " \n",
       ">               RowBox[{RowBox[{\"∂\", \"t\"}], \" \", \n",
       "\n",
       " \n",
       ">                 RowBox[{\"∂\", RowBox[{SuperscriptBox[\"y\", \"′\", \n",
       "\n",
       " \n",
       ">                      Rule[MultilineFunction, None]], \"(\", \"t\", \")\"}]}]}], \n",
       "\n",
       " \n",
       ">               Rule[MultilineFunction, None]], \"-\", \n",
       "\n",
       " \n",
       ">              RowBox[{FractionBox[RowBox[{\"∂\", RowBox[{\"x\", \"(\", \"t\", \")\"}]}], \n",
       "\n",
       " \n",
       ">                 RowBox[{\"∂\", \"t\"}], Rule[MultilineFunction, None]], \" \", \n",
       "\n",
       " \n",
       ">                FractionBox[RowBox[{SuperscriptBox[\"∂\", \"2\"], \n",
       "\n",
       " \n",
       ">                   RowBox[{\"L\", \"(\", \n",
       "\n",
       " \n",
       ">                     RowBox[{\"t\", \",\", RowBox[{\"x\", \"(\", \"t\", \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{SuperscriptBox[\"x\", \"′\", \n",
       "\n",
       " \n",
       ">                          Rule[MultilineFunction, None]], \"(\", \"t\", \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{\"y\", \"(\", \"t\", \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{SuperscriptBox[\"y\", \"′\", \n",
       "\n",
       " \n",
       ">                          Rule[MultilineFunction, None]], \"(\", \"t\", \")\"}]}], \")\"}]}], \n",
       "\n",
       " \n",
       ">                 RowBox[{RowBox[{\"∂\", RowBox[{\"x\", \"(\", \"t\", \")\"}]}], \" \", \n",
       "\n",
       " \n",
       ">                   RowBox[{\"∂\", RowBox[{SuperscriptBox[\"y\", \"′\", \n",
       "\n",
       " \n",
       ">                        Rule[MultilineFunction, None]], \"(\", \"t\", \")\"}]}]}], \n",
       "\n",
       " \n",
       ">                 Rule[MultilineFunction, None]]}], \"-\", \n",
       "\n",
       " \n",
       ">              RowBox[{FractionBox[RowBox[{\"∂\", RowBox[{\"y\", \"(\", \"t\", \")\"}]}], \n",
       "\n",
       " \n",
       ">                 RowBox[{\"∂\", \"t\"}], Rule[MultilineFunction, None]], \" \", \n",
       "\n",
       " \n",
       ">                FractionBox[RowBox[{SuperscriptBox[\"∂\", \"2\"], \n",
       "\n",
       " \n",
       ">                   RowBox[{\"L\", \"(\", \n",
       "\n",
       " \n",
       ">                     RowBox[{\"t\", \",\", RowBox[{\"x\", \"(\", \"t\", \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{SuperscriptBox[\"x\", \"′\", \n",
       "\n",
       " \n",
       ">                          Rule[MultilineFunction, None]], \"(\", \"t\", \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{\"y\", \"(\", \"t\", \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{SuperscriptBox[\"y\", \"′\", \n",
       "\n",
       " \n",
       ">                          Rule[MultilineFunction, None]], \"(\", \"t\", \")\"}]}], \")\"}]}], \n",
       "\n",
       " \n",
       ">                 RowBox[{RowBox[{\"∂\", RowBox[{\"y\", \"(\", \"t\", \")\"}]}], \" \", \n",
       "\n",
       " \n",
       ">                   RowBox[{\"∂\", RowBox[{SuperscriptBox[\"y\", \"′\", \n",
       "\n",
       " \n",
       ">                        Rule[MultilineFunction, None]], \"(\", \"t\", \")\"}]}]}], \n",
       "\n",
       " \n",
       ">                 Rule[MultilineFunction, None]]}], \"-\", \n",
       "\n",
       " \n",
       ">              RowBox[{FractionBox[RowBox[{SuperscriptBox[\"∂\", \"2\"], \n",
       "\n",
       " \n",
       ">                   RowBox[{\"y\", \"(\", \"t\", \")\"}]}], \n",
       "\n",
       " \n",
       ">                 RowBox[{\"∂\", SuperscriptBox[\"t\", \"2\"]}], \n",
       "\n",
       " \n",
       ">                 Rule[MultilineFunction, None]], \" \", \n",
       "\n",
       " \n",
       ">                FractionBox[RowBox[{SuperscriptBox[\"∂\", \"2\"], \n",
       "\n",
       " \n",
       ">                   RowBox[{\"L\", \"(\", \n",
       "\n",
       " \n",
       ">                     RowBox[{\"t\", \",\", RowBox[{\"x\", \"(\", \"t\", \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{SuperscriptBox[\"x\", \"′\", \n",
       "\n",
       " \n",
       ">                          Rule[MultilineFunction, None]], \"(\", \"t\", \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{\"y\", \"(\", \"t\", \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{SuperscriptBox[\"y\", \"′\", \n",
       "\n",
       " \n",
       ">                          Rule[MultilineFunction, None]], \"(\", \"t\", \")\"}]}], \")\"}]}], \n",
       "\n",
       " \n",
       ">                 RowBox[{\"∂\", SuperscriptBox[RowBox[{SuperscriptBox[\"y\", \"′\", \n",
       "\n",
       " \n",
       ">                       Rule[MultilineFunction, None]], \"(\", \"t\", \")\"}], \"2\"]}], \n",
       "\n",
       " \n",
       ">                 Rule[MultilineFunction, None]]}], \"+\", \n",
       "\n",
       " \n",
       ">              FractionBox[RowBox[{\"∂\", \n",
       "\n",
       " \n",
       ">                 RowBox[{\"L\", \"(\", RowBox[{\"t\", \",\", RowBox[{\"x\", \"(\", \"t\", \")\"}], \n",
       "\n",
       " \n",
       ">                     \",\", RowBox[{SuperscriptBox[\"x\", \"′\", \n",
       "\n",
       " \n",
       ">                        Rule[MultilineFunction, None]], \"(\", \"t\", \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                     RowBox[{\"y\", \"(\", \"t\", \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                     RowBox[{SuperscriptBox[\"y\", \"′\", Rule[MultilineFunction, None]], \n",
       "\n",
       " \n",
       ">                       \"(\", \"t\", \")\"}]}], \")\"}]}], \n",
       "\n",
       " \n",
       ">               RowBox[{\"∂\", RowBox[{\"y\", \"(\", \"t\", \")\"}]}], \n",
       "\n",
       " \n",
       ">               Rule[MultilineFunction, None]]}], \"\", \"0\"}]}], \"}\"}], TraditionalForm]\n"
      ]
     },
     "execution_count": 31,
     "metadata": {
      "text/html": [],
      "text/plain": []
     },
     "output_type": "execute_result"
    }
   ],
   "source": [
    "l = L[t, x[t], D[x[t],t], y[t], D[y[t],t]];\n",
    "EulerEqn1[l, {x,y}, t, eXpand -> True]//pdConv"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2021-02-02T17:10:14+08:00",
     "start_time": "2021-02-02T09:10:14.514Z"
    },
    "collapsed": true
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div><img alt=\"Output\" src=\"\"></div>"
      ],
      "text/plain": [
       "FormBox[RowBox[{\"{\", RowBox[{RowBox[{RowBox[{FractionBox[RowBox[\n",
       "\n",
       " \n",
       ">                {\"∂\", RowBox[{\"L\", \"(\", \n",
       "\n",
       " \n",
       ">                   RowBox[{\"t\", \",\", RowBox[{\"x\", \"(\", \"t\", \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                     RowBox[{SuperscriptBox[\"x\", \"′\", \n",
       "\n",
       " \n",
       ">                        Rule[MultilineFunction, None]], \"(\", \"t\", \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                     RowBox[{\"y\", \"(\", \"t\", \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                     RowBox[{SuperscriptBox[\"y\", \"′\", \n",
       "\n",
       " \n",
       ">                        Rule[MultilineFunction, None]], \"(\", \"t\", \")\"}]}], \")\"}]}], \n",
       "\n",
       " \n",
       ">               RowBox[{\"∂\", RowBox[{\"x\", \"(\", \"t\", \")\"}]}], \n",
       "\n",
       " \n",
       ">               Rule[MultilineFunction, None]], \"-\", \n",
       "\n",
       " \n",
       ">              TagBox[TagBox[RowBox[{FractionBox[\"∂\", \n",
       "\n",
       " \n",
       ">                   RowBox[{\"∂\", SuperscriptBox[\"t\", \"1\"]}]], \n",
       "\n",
       " \n",
       ">                  RowBox[{RowBox[{\"(\", \n",
       "\n",
       " \n",
       ">                      RowBox[{FractionBox[RowBox[{\"∂\", \n",
       "\n",
       " \n",
       ">                           RowBox[{\"L\", \"(\", \n",
       "\n",
       " \n",
       ">                             RowBox[{\"t\", \",\", RowBox[{\"x\", \"(\", \"t\", \")\"}], \n",
       "\n",
       " \n",
       ">                             \",\", \n",
       "\n",
       " \n",
       ">                             RowBox[{SuperscriptBox[\"x\", \"′\", \n",
       "\n",
       " \n",
       ">                             Rule[MultilineFunction, None]], \"(\", \"t\", \")\"}], \n",
       "\n",
       " \n",
       ">                             \",\", RowBox[{\"y\", \"(\", \"t\", \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                             RowBox[{SuperscriptBox[\"y\", \"′\", \n",
       "\n",
       " \n",
       ">                             Rule[MultilineFunction, None]], \"(\", \"t\", \")\"}]}], \n",
       "\n",
       " \n",
       ">                             \")\"}]}], RowBox[{\"∂\", \"##1\"}], \n",
       "\n",
       " \n",
       ">                         Rule[MultilineFunction, None]], \"&\"}], \")\"}], \"@@\", \n",
       "\n",
       " \n",
       ">                    RowBox[{\"(\", RowBox[{TemplateBox[List[RowBox[List[\"(\", \n",
       "\n",
       " \n",
       ">                            \"\\[NoBreak]\", \n",
       "\n",
       " \n",
       ">                            GridBox[List[List[\"t\", \n",
       "\n",
       " \n",
       ">                             RowBox[List[\"x\", \"(\", \"t\", \")\"]], \n",
       "\n",
       " \n",
       ">                             RowBox[List[SuperscriptBox[\"x\", \"\\[Prime]\", \n",
       "\n",
       " \n",
       ">                            Rule[MultilineFunction, None]], \"(\", \"t\", \")\"]], \n",
       "\n",
       " \n",
       ">                             RowBox[List[\"y\", \"(\", \"t\", \")\"]], \n",
       "\n",
       " \n",
       ">                             RowBox[List[SuperscriptBox[\"y\", \"\\[Prime]\", \n",
       "\n",
       " \n",
       ">                             Rule[MultilineFunction, None]], \"(\", \"t\", \")\"]]], \n",
       "\n",
       " \n",
       ">                             List[\"0\", \"0\", \"1\", \"0\", \"0\"]], \n",
       "\n",
       " \n",
       ">                             Rule[RowSpacings, 1], Rule[ColumnSpacings, 1], \n",
       "\n",
       " \n",
       ">                             Rule[RowAlignments, Baseline], \n",
       "\n",
       " \n",
       ">                             Rule[ColumnAlignments, Center]], \"\\[NoBreak]\",\\\n",
       " \n",
       ">    \")\"]]]\\\n",
       ", \"Transpose\", Rule[SyntaxForm, SuperscriptBox]], \"/.\", \" \", \n",
       "\n",
       " \n",
       ">                        RowBox[{\"{\", \n",
       "\n",
       " \n",
       ">                          RowBox[{RowBox[{RowBox[{\"{\", \n",
       "\n",
       " \n",
       ">                              RowBox[{\"var_\", \",\", \"0\"}], \"}\"}], \"\", \n",
       "\n",
       " \n",
       ">                              RowBox[{\"Sequence\", \"[\", \"]\"}]}], \",\", \n",
       "\n",
       " \n",
       ">                            RowBox[{RowBox[{\"{\", RowBox[{\"var_\", \",\", \"1\"}], \n",
       "\n",
       " \n",
       ">                             \"}\"}], \"\", RowBox[{\"{\", \"var\", \"}\"}]}]}], \"}\"}]}], \")\"}\\\n",
       "\n",
       " \n",
       ">   ]}]}], D], HoldForm]}], \"\", \"0\"}], \",\", \n",
       "\n",
       " \n",
       ">          RowBox[{RowBox[{FractionBox[RowBox[{\"∂\", \n",
       "\n",
       " \n",
       ">                 RowBox[{\"L\", \"(\", RowBox[{\"t\", \",\", RowBox[{\"x\", \"(\", \"t\", \")\"}], \n",
       "\n",
       " \n",
       ">                     \",\", RowBox[{SuperscriptBox[\"x\", \"′\", \n",
       "\n",
       " \n",
       ">                        Rule[MultilineFunction, None]], \"(\", \"t\", \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                     RowBox[{\"y\", \"(\", \"t\", \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                     RowBox[{SuperscriptBox[\"y\", \"′\", \n",
       "\n",
       " \n",
       ">                        Rule[MultilineFunction, None]], \"(\", \"t\", \")\"}]}], \")\"}]}], \n",
       "\n",
       " \n",
       ">               RowBox[{\"∂\", RowBox[{\"y\", \"(\", \"t\", \")\"}]}], \n",
       "\n",
       " \n",
       ">               Rule[MultilineFunction, None]], \"-\", \n",
       "\n",
       " \n",
       ">              TagBox[TagBox[RowBox[{FractionBox[\"∂\", \n",
       "\n",
       " \n",
       ">                   RowBox[{\"∂\", SuperscriptBox[\"t\", \"1\"]}]], \n",
       "\n",
       " \n",
       ">                  RowBox[{RowBox[{\"(\", \n",
       "\n",
       " \n",
       ">                      RowBox[{FractionBox[RowBox[{\"∂\", \n",
       "\n",
       " \n",
       ">                           RowBox[{\"L\", \"(\", \n",
       "\n",
       " \n",
       ">                             RowBox[{\"t\", \",\", RowBox[{\"x\", \"(\", \"t\", \")\"}], \n",
       "\n",
       " \n",
       ">                              \",\", \n",
       "\n",
       " \n",
       ">                              RowBox[{SuperscriptBox[\"x\", \"′\", \n",
       "\n",
       " \n",
       ">                             Rule[MultilineFunction, None]], \"(\", \"t\", \")\"}], \n",
       "\n",
       " \n",
       ">                              \",\", RowBox[{\"y\", \"(\", \"t\", \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                              RowBox[{SuperscriptBox[\"y\", \"′\", \n",
       "\n",
       " \n",
       ">                             Rule[MultilineFunction, None]], \"(\", \"t\", \")\"}]}], \n",
       "\n",
       " \n",
       ">                             \")\"}]}], RowBox[{\"∂\", \"##1\"}], \n",
       "\n",
       " \n",
       ">                         Rule[MultilineFunction, None]], \"&\"}], \")\"}], \"@@\", \n",
       "\n",
       " \n",
       ">                    RowBox[{\"(\", RowBox[{TemplateBox[List[RowBox[List[\"(\", \n",
       "\n",
       " \n",
       ">                            \"\\[NoBreak]\", \n",
       "\n",
       " \n",
       ">                            GridBox[List[List[\"t\", \n",
       "\n",
       " \n",
       ">                             RowBox[List[\"x\", \"(\", \"t\", \")\"]], \n",
       "\n",
       " \n",
       ">                             RowBox[List[SuperscriptBox[\"x\", \"\\[Prime]\", \n",
       "\n",
       " \n",
       ">                             Rule[MultilineFunction, None]], \"(\", \"t\", \")\"]], \n",
       "\n",
       " \n",
       ">                             RowBox[List[\"y\", \"(\", \"t\", \")\"]], \n",
       "\n",
       " \n",
       ">                             RowBox[List[SuperscriptBox[\"y\", \"\\[Prime]\", \n",
       "\n",
       " \n",
       ">                             Rule[MultilineFunction, None]], \"(\", \"t\", \")\"]]], \n",
       "\n",
       " \n",
       ">                              List[\"0\", \"0\", \"0\", \"0\", \"1\"]], \n",
       "\n",
       " \n",
       ">                             Rule[RowSpacings, 1], Rule[ColumnSpacings, 1], \n",
       "\n",
       " \n",
       ">                             Rule[RowAlignments, Baseline], \n",
       "\n",
       " \n",
       ">                             Rule[ColumnAlignments, Center]], \"\\[NoBreak]\", \")\"]]], \n",
       "\n",
       " \n",
       ">                         \"Transpose\", Rule[SyntaxForm, SuperscriptBox]], \"/.\", \" \", \n",
       "\n",
       " \n",
       ">                        RowBox[{\"{\", \n",
       "\n",
       " \n",
       ">                          RowBox[{RowBox[{RowBox[{\"{\", \n",
       "\n",
       " \n",
       ">                              RowBox[{\"var_\", \",\", \"0\"}], \"}\"}], \"\", \n",
       "\n",
       " \n",
       ">                              RowBox[{\"Sequence\", \"[\", \"]\"}]}], \",\", \n",
       "\n",
       " \n",
       ">                            RowBox[{RowBox[{\"{\", RowBox[{\"var_\", \",\", \"1\"}], \"}\"}], \n",
       "\n",
       " \n",
       ">                              \"\", RowBox[{\"{\", \"var\", \"}\"}]}]}], \"}\"}]}], \")\"}]}]}], \n",
       "\n",
       " \n",
       ">                D], HoldForm]}], \"\", \"0\"}]}], \"}\"}], TraditionalForm]\n"
      ]
     },
     "execution_count": 32,
     "metadata": {
      "text/html": [],
      "text/plain": []
     },
     "output_type": "execute_result"
    }
   ],
   "source": [
    "EulerEqn1[l, {x,y}, t]//pdConv"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 3.1.2 依赖于 $n$ 个函数\n",
    "**推论**【$n$ 元泛函的 Euler 方程组】\n",
    "使泛函 $\\mathcal{A}[x_1,x_2,\\cdots,x_n] = \\int_{t_0}^{t_1} L(t,x_1,\\cdots,x_n, \n",
    "\\dot{x_1},\\cdots,\\dot{x_n})\\mathrm{d}t$ 取得极值且满足边界条件\n",
    "$x_i(t_0)=x_{i0}$，$x_i(t_1)=x_{i1} (i=1,\\cdots,n)$ 的极值曲线 $x_i = x_I(x) (i=1,\\cdots,n)$\n",
    "必定满足欧拉方程组：\n",
    "$$\n",
    "L_{x_i}-\\frac{\\mathrm{d}}{\\mathrm{d}t}L_{\\dot{x_i}}=0,\\; i=1,2,\\cdots,n. \n",
    "$$\n",
    "换句话说就是“每个变量都要满足欧拉方程”. \n",
    "\n",
    "**证明**\n",
    "我们的目的是确定一组二次可微函数 $x_i^*(t)$ $(i=1,\\cdots,n)$ 使泛函取极值. \n",
    "所以，把 $x_i(t)$ 作为待求极值函数 $x_i^*$ 的容许函数. \n",
    "引进小参数 $\\alpha$，而得到容许函数族：\n",
    "$$\n",
    "\\left\\{\n",
    "\\begin{aligned}\n",
    "x_1(t) &= x_1^*(t) + \\alpha\\eta_1(t)\\\\\n",
    "x_2(t) &= x_2^*(t) + \\alpha\\eta_2(t)\\\\\n",
    "&\\vdots\\\\\n",
    "x_n(t) &= x_n^*(t) + \\alpha\\eta_n(t)\n",
    "\\end{aligned}\n",
    "\\right.\n",
    "$$\n",
    "这里 $\\eta_i(t)$ 是任意函数，它们具有足够的连续性和可微性，并且在端点处为零. \n",
    "显然，当 $\\alpha=0$ 时，容许函数 $x_i(t)$ 就是极值函数 $x_i^*(t)$. \n",
    "令 \n",
    "$$\n",
    "\\Phi(\\alpha)=\\int_{t_0}^{t_1} L(t,x_1,\\cdots,x_n,\\dot{x_1},\\cdots,\\dot{x_n})\\mathrm{d}t.\n",
    "$$\n",
    "这样就把原来的泛函化为参数 $\\alpha$ 的函数了，因而可以应用函数的极值准则来处理. \n",
    "\n",
    "因假设泛函在函数 $x_i^*(t)$ 上取极值，即函数 $x_i(t)$ 在 $\\alpha=0$ 时取极值. \n",
    "由数学分析，可知函数 $x_i(t)$ 在 $\\alpha=0$ 时有极值的必要条件是\n",
    "$$\n",
    "\\left[\\frac{\\mathrm{d}\\Phi(\\alpha)}{\\mathrm{d}\\alpha}\\right]=0.\n",
    "$$\n",
    "按照泛函一次变分的定义有\n",
    "$$\n",
    "\\begin{aligned}\n",
    "\\delta \\mathcal{A} &= \\left\\{\\int_{t_0}^{t_1} \\sum_{i=1}^n \\frac{\\partial L}{\\partial x_i}\\eta_i + \n",
    "\\frac{\\partial L}{\\partial x_i'}\\eta_i' \\mathrm{d}t \\right\\}_{\\alpha=0}\\\\\n",
    "&= \\int_{t_0}^{t_1} \\sum_{i=1}^n \\frac{\\partial L}{\\partial x_i^*}\\eta_i + \n",
    "\\frac{\\partial L}{\\partial {x_i^{*}}'}\\eta_i' \\mathrm{d}t = 0.\n",
    "\\end{aligned}\n",
    "$$\n",
    "由于函数 $\\eta_i(t)$ 的任意性，可以令 $\\eta_1(t)$ 以外的其余 $\\eta_i$ 函数均为零. \n",
    "由分部积分和变分法基本引理，可得关于 $x_1^*(t)$ 的欧拉方程. 同样对于其他 $n-1$ 个函数，也是如此. \n",
    "最后我们得到欧拉方程组. \n",
    "\n",
    "---\n",
    "与最简变分问题一样，对于欧拉方程组我们有：\n",
    "- 如果 $f$ 不显式依赖于自变量 $t$，即 $L(x_1,\\cdots,x_n,\\dot{x_1},\\cdots,\\dot{x_n})$，\n",
    "则存在首次积分\n",
    "$$\n",
    "\\sum_{i=1}^n L_{x_i'}\\cdot x_i' - L = c,\n",
    "$$\n",
    "其中 $c$ 为积分常数. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2021-02-03T18:23:54+08:00",
     "start_time": "2021-02-03T10:23:53.768Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div><img alt=\"Output\" src=\"\"></div>"
      ],
      "text/plain": [
       "FormBox[RowBox[{\"{\", RowBox[{RowBox[{\"FirstIntegral\", \"(\", \"t\", \")\"}], \"\", \n",
       "\n",
       " \n",
       ">          RowBox[{RowBox[{FractionBox[RowBox[{\"∂\", RowBox[{\"x\", \"(\", \"t\", \")\"}]}], \n",
       "\n",
       " \n",
       ">               RowBox[{\"∂\", \"t\"}], Rule[MultilineFunction, None]], \" \", \n",
       "\n",
       " \n",
       ">              FractionBox[RowBox[{\"∂\", \n",
       "\n",
       " \n",
       ">                 RowBox[{\"L\", \"(\", RowBox[{RowBox[{\"x\", \"(\", \"t\", \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                     RowBox[{SuperscriptBox[\"x\", \"′\", \n",
       "\n",
       " \n",
       ">                        Rule[MultilineFunction, None]], \"(\", \"t\", \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                     RowBox[{\"y\", \"(\", \"t\", \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                     RowBox[{SuperscriptBox[\"y\", \"′\", Rule[MultilineFunction, None]], \n",
       "\n",
       " \n",
       ">                       \"(\", \"t\", \")\"}]}], \")\"}]}], \n",
       "\n",
       " \n",
       ">               RowBox[{\"∂\", RowBox[{SuperscriptBox[\"x\", \"′\", \n",
       "\n",
       " \n",
       ">                    Rule[MultilineFunction, None]], \"(\", \"t\", \")\"}]}], \n",
       "\n",
       " \n",
       ">               Rule[MultilineFunction, None]]}], \"+\", \n",
       "\n",
       " \n",
       ">            RowBox[{FractionBox[RowBox[{\"∂\", RowBox[{\"y\", \"(\", \"t\", \")\"}]}], \n",
       "\n",
       " \n",
       ">               RowBox[{\"∂\", \"t\"}], Rule[MultilineFunction, None]], \" \", \n",
       "\n",
       " \n",
       ">              FractionBox[RowBox[{\"∂\", \n",
       "\n",
       " \n",
       ">                 RowBox[{\"L\", \"(\", RowBox[{RowBox[{\"x\", \"(\", \"t\", \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                     RowBox[{SuperscriptBox[\"x\", \"′\", \n",
       "\n",
       " \n",
       ">                        Rule[MultilineFunction, None]], \"(\", \"t\", \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                     RowBox[{\"y\", \"(\", \"t\", \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                     RowBox[{SuperscriptBox[\"y\", \"′\", Rule[MultilineFunction, None]], \n",
       "\n",
       " \n",
       ">                       \"(\", \"t\", \")\"}]}], \")\"}]}], \n",
       "\n",
       " \n",
       ">               RowBox[{\"∂\", RowBox[{SuperscriptBox[\"y\", \"′\", \n",
       "\n",
       " \n",
       ">                    Rule[MultilineFunction, None]], \"(\", \"t\", \")\"}]}], \n",
       "\n",
       " \n",
       ">               Rule[MultilineFunction, None]]}], \"-\", \n",
       "\n",
       " \n",
       ">            RowBox[{\"L\", \"(\", RowBox[{RowBox[{\"x\", \"(\", \"t\", \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                FractionBox[RowBox[{\"∂\", RowBox[{\"x\", \"(\", \"t\", \")\"}]}], \n",
       "\n",
       " \n",
       ">                 RowBox[{\"∂\", \"t\"}], Rule[MultilineFunction, None]], \",\", \n",
       "\n",
       " \n",
       ">                RowBox[{\"y\", \"(\", \"t\", \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                FractionBox[RowBox[{\"∂\", RowBox[{\"y\", \"(\", \"t\", \")\"}]}], \n",
       "\n",
       " \n",
       ">                 RowBox[{\"∂\", \"t\"}], Rule[MultilineFunction, None]]}], \")\"}]}]}],\\\n",
       " \n",
       ">    \"}\"}], \n",
       "   TraditionalForm]\n"
      ]
     },
     "execution_count": 4,
     "metadata": {
      "text/html": [],
      "text/plain": []
     },
     "output_type": "execute_result"
    }
   ],
   "source": [
    "(*依赖于两个函数变分问题的首次积分*)\n",
    "FirstIntegrals[L[x[t], D[x[t],t], y[t], D[y[t],t]], {x[t], y[t]}, t]//pdConv"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "可以看到，多个函数推广的结果比较平凡，只是对欧拉方程中的因变量加一个角标使之变为欧拉方程组. \n",
    "<!--\n",
    "在后面的讨论中就不再涉及多个函数的推广与其他推广的结合了. \n",
    "-->\n",
    "而在坐标变换时，与之相似的矢量函数的推广会考虑多个分量（函数）之间的关系，即变分不再是独立的了. "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 3.1.3 依赖于多个函数高阶导数\n",
    "**推论**【$m$ 元泛函的 Euler-Poisson 方程组】\n",
    "对于依赖于多个函数的高阶导函数的泛函\n",
    "$$\n",
    "\\mathcal{A}[x_1,\\cdots,x_m]=\\int_{t_0}^{t_1} L(t, x_1, x_1', \\cdots, x_1^{(n_1)},\n",
    "x_2, x_2', \\cdots, x_2^{(n_2)}, \\cdots, x_m, x_m', \\cdots, x_m^{(n_m)}) \\mathrm{d}t.\n",
    "$$\n",
    "满足有如下形式的边界条件：($k=1,2,\\cdots,m$)\n",
    "$$\n",
    "\\begin{matrix}\n",
    "x_k(t_0)=x_{k_0}, &x_k'(t_0)=x_{k_0}', &\\cdots, &x_k^{(n_k-1)}(t_0)=x_{k_0}^{(n_k-1)}\\\\\n",
    "x_k(t_1)=x_{k_1}, &x_k'(t_1)=x_{k_1}', &\\cdots, &x_k^{(n_k-1)}(t_1)=x_{k_1}^{(n_k-1)}\n",
    "\\end{matrix}\n",
    "$$\n",
    "又假定待定曲线 $x_k(t)$ 分别是 $2 n_k$ 阶可微的. 令 $n=\\max\\{n_k\\}$，则 $f$ 需要是 $n+2$ 阶可微. \n",
    "为了得到泛函极值的必要条件，又因为变分 $\\delta x_k$ 的任意性，我们可以先让 $x_1$ 取得变分，其余函数不变. \n",
    "这样，得到 $x_1$ 的泛函 $\\mathcal{A}[x_1] = \\mathcal{A}[x_1,\\cdots,x_m]$. \n",
    "\n",
    "对于 $x_1$，我们可以重复欧拉-泊松方程的推导过程，得到 $x_1$ 应当满足的泛函极值必要条件. \n",
    "$$\n",
    "L_{x_1} - \\frac{\\mathrm{d}}{\\mathrm{d}t}\\left(L_{\\dot{x}_1}\\right) + \\cdots + \n",
    "(-1)^{n_1}\\frac{\\mathrm{d}^{n_1}}{\\mathrm{d}t^{n_1}}\\left(L_{x_1^{(n)}}\\right) = 0.\n",
    "$$\n",
    "同理，可得其余 $m-1$ 个函数对应的欧拉-泊松方程. 最后合起来就是 $m$ 元泛函 $\\mathcal{A}[x_1,\\cdots,x_m]$ \n",
    "极值曲线必定满足的欧拉-泊松方程组. \n",
    "$$\\begin{aligned}\n",
    "L_{x_k} - \\frac{\\mathrm{d}}{\\mathrm{d}t}\\left(L_{\\dot{x}_1}\\right) &+ \\cdots + \n",
    "(-1)^{n_k}\\frac{\\mathrm{d}^{n_k}}{\\mathrm{d}t^{n_k}}\\left(L_{x_k^{(n)}}\\right) = 0.\\\\\n",
    "&(k=1,2,\\cdots,m)\n",
    "\\end{aligned}\n",
    "$$"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 3.1.4 依赖于两个二元函数\n",
    "**推论**【二元泛函的 Euler-Ostrogradsky 方程组】\n",
    "设 $D$ 是平面区域，$(x,y)\\in D$，$v(x,y), u(x,y)\\in C^2(D)$，\n",
    "则对于泛函\n",
    "$$\n",
    "\\mathcal{A}[u(x,y),v(x,y)] = \\iint_D L\\left(x,y,u,v,u_x,u_y,v_x,v_y\\right)\n",
    "\\mathrm{~d}x\\mathrm{~d}y\n",
    "$$\n",
    "其欧拉（奥氏）方程组为\n",
    "$$\\left\\{\n",
    "\\begin{aligned}\n",
    "L_u-\\frac{\\partial}{\\partial x}L_{u_x}-\\frac{\\partial}{\\partial y}L_{u_y}&=0,\\\\\n",
    "L_v-\\frac{\\partial}{\\partial x}L_{v_x}-\\frac{\\partial}{\\partial y}L_{v_y}&=0.\n",
    "\\end{aligned}\\right.\n",
    "$$"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2021-02-02T16:46:05+08:00",
     "start_time": "2021-02-02T08:46:05.277Z"
    },
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div><img alt=\"Output\" src=\"\"></div>"
      ],
      "text/plain": [
       "FormBox[RowBox[{\"{\", RowBox[{RowBox[{RowBox[{FractionBox[RowBox[\n",
       "\n",
       " \n",
       ">                {\"∂\", RowBox[{\"η\", \"(\", RowBox[{\"x\", \",\", \"y\"}], \")\"}]}], \n",
       "\n",
       " \n",
       ">               RowBox[{\"∂\", \"x\"}], Rule[MultilineFunction, None]], \" \", \n",
       "\n",
       " \n",
       ">              FractionBox[RowBox[{\"∂\", \n",
       "\n",
       " \n",
       ">                 RowBox[{\"L\", \"(\", RowBox[{\"x\", \",\", \"y\", \",\", \n",
       "\n",
       " \n",
       ">                     RowBox[{SuperscriptBox[\"u\", \"*\"], \"(\", \n",
       "\n",
       " \n",
       ">                       RowBox[{\"x\", \",\", \"y\"}], \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                     RowBox[{SuperscriptBox[\"v\", \"*\"], \"(\", \n",
       "\n",
       " \n",
       ">                       RowBox[{\"x\", \",\", \"y\"}], \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                     RowBox[{SuperscriptBox[RowBox[{\"(\", \n",
       "\n",
       " \n",
       ">                          SuperscriptBox[\"u\", \"*\"], \")\"}], \n",
       "\n",
       " \n",
       ">                        TagBox[RowBox[{\"(\", RowBox[{\"1\", \",\", \"0\"}], \")\"}], \n",
       "\n",
       " \n",
       ">                         Derivative], Rule[MultilineFunction, None]], \"\", \n",
       "\n",
       " \n",
       ">                       RowBox[{\"(\", RowBox[{\"x\", \",\", \"y\"}], \")\"}]}], \",\", \n",
       "\n",
       " \n",
       ">                     RowBox[{SuperscriptBox[RowBox[{\"(\", \n",
       "\n",
       " \n",
       ">                          SuperscriptBox[\"u\", \"*\"], \")\"}], \n",
       "\n",
       " \n",
       ">                        TagBox[RowBox[{\"(\", RowBox[{\"0\", \",\", \"1\"}], \")\"}], \n",
       "\n",
       " \n",
       ">                         Derivative], Rule[MultilineFunction, None]], \"\", \n",
       "\n",
       " \n",
       ">                       RowBox[{\"(\", RowBox[{\"x\", \",\", \"y\"}], \")\"}]}], \",\", \n",
       "\n",
       " \n",
       ">                     RowBox[{SuperscriptBox[RowBox[{\"(\", \n",
       "\n",
       " \n",
       ">                          SuperscriptBox[\"v\", \"*\"], \")\"}], \n",
       "\n",
       " \n",
       ">                        TagBox[RowBox[{\"(\", RowBox[{\"1\", \",\", \"0\"}], \")\"}], \n",
       "\n",
       " \n",
       ">                         Derivative], Rule[MultilineFunction, None]], \"\", \n",
       "\n",
       " \n",
       ">                       RowBox[{\"(\", RowBox[{\"x\", \",\", \"y\"}], \")\"}]}], \",\", \n",
       "\n",
       " \n",
       ">                     RowBox[{SuperscriptBox[RowBox[{\"(\", SuperscriptBox[\"v\", \"*\"], \n",
       "\n",
       " \n",
       ">                          \")\"}], TagBox[RowBox[{\"(\", RowBox[{\"0\", \",\", \"1\"}], \n",
       "\n",
       " \n",
       ">                           \")\"}], Derivative], Rule[MultilineFunction, None]], \"\", \n",
       "\n",
       " \n",
       ">                       RowBox[{\"(\", RowBox[{\"x\", \",\", \"y\"}], \")\"}]}]}], \")\"}]}], \n",
       "\n",
       " \n",
       ">               RowBox[{\"∂\", RowBox[{SuperscriptBox[RowBox[{\"(\", \n",
       "\n",
       " \n",
       ">                      SuperscriptBox[\"u\", \"*\"], \")\"}], \n",
       "\n",
       " \n",
       ">                    TagBox[RowBox[{\"(\", RowBox[{\"1\", \",\", \"0\"}], \")\"}], Derivative], \n",
       "\n",
       " \n",
       ">                    Rule[MultilineFunction, None]], \"\", \n",
       "\n",
       " \n",
       ">                   RowBox[{\"(\", RowBox[{\"x\", \",\", \"y\"}], \")\"}]}]}], \n",
       "\n",
       " \n",
       ">               Rule[MultilineFunction, None]]}], \"+\", \n",
       "\n",
       " \n",
       ">            RowBox[{FractionBox[RowBox[{\"∂\", \n",
       "\n",
       " \n",
       ">                 RowBox[{\"η\", \"(\", RowBox[{\"x\", \",\", \"y\"}], \")\"}]}], \n",
       "\n",
       " \n",
       ">               RowBox[{\"∂\", \"y\"}], Rule[MultilineFunction, None]], \" \", \n",
       "\n",
       " \n",
       ">              FractionBox[RowBox[{\"∂\", \n",
       "\n",
       " \n",
       ">                 RowBox[{\"L\", \"(\", RowBox[{\"x\", \",\", \"y\", \",\", \n",
       "\n",
       " \n",
       ">                     RowBox[{SuperscriptBox[\"u\", \"*\"], \"(\", \n",
       "\n",
       " \n",
       ">                       RowBox[{\"x\", \",\", \"y\"}], \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                     RowBox[{SuperscriptBox[\"v\", \"*\"], \"(\", \n",
       "\n",
       " \n",
       ">                       RowBox[{\"x\", \",\", \"y\"}], \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                     RowBox[{SuperscriptBox[RowBox[{\"(\", \n",
       "\n",
       " \n",
       ">                          SuperscriptBox[\"u\", \"*\"], \")\"}], \n",
       "\n",
       " \n",
       ">                        TagBox[RowBox[{\"(\", RowBox[{\"1\", \",\", \"0\"}], \")\"}], \n",
       "\n",
       " \n",
       ">                         Derivative], Rule[MultilineFunction, None]], \"\", \n",
       "\n",
       " \n",
       ">                       RowBox[{\"(\", RowBox[{\"x\", \",\", \"y\"}], \")\"}]}], \",\", \n",
       "\n",
       " \n",
       ">                     RowBox[{SuperscriptBox[RowBox[{\"(\", \n",
       "\n",
       " \n",
       ">                          SuperscriptBox[\"u\", \"*\"], \")\"}], \n",
       "\n",
       " \n",
       ">                        TagBox[RowBox[{\"(\", RowBox[{\"0\", \",\", \"1\"}], \")\"}], \n",
       "\n",
       " \n",
       ">                         Derivative], Rule[MultilineFunction, None]], \"\", \n",
       "\n",
       " \n",
       ">                       RowBox[{\"(\", RowBox[{\"x\", \",\", \"y\"}], \")\"}]}], \",\", \n",
       "\n",
       " \n",
       ">                     RowBox[{SuperscriptBox[RowBox[{\"(\", \n",
       "\n",
       " \n",
       ">                          SuperscriptBox[\"v\", \"*\"], \")\"}], \n",
       "\n",
       " \n",
       ">                        TagBox[RowBox[{\"(\", RowBox[{\"1\", \",\", \"0\"}], \")\"}], \n",
       "\n",
       " \n",
       ">                         Derivative], Rule[MultilineFunction, None]], \"\", \n",
       "\n",
       " \n",
       ">                       RowBox[{\"(\", RowBox[{\"x\", \",\", \"y\"}], \")\"}]}], \",\", \n",
       "\n",
       " \n",
       ">                     RowBox[{SuperscriptBox[RowBox[{\"(\", SuperscriptBox[\"v\", \"*\"], \n",
       "\n",
       " \n",
       ">                          \")\"}], TagBox[RowBox[{\"(\", RowBox[{\"0\", \",\", \"1\"}], \n",
       "\n",
       " \n",
       ">                           \")\"}], Derivative], Rule[MultilineFunction, None]], \"\", \n",
       "\n",
       " \n",
       ">                       RowBox[{\"(\", RowBox[{\"x\", \",\", \"y\"}], \")\"}]}]}], \")\"}]}], \n",
       "\n",
       " \n",
       ">               RowBox[{\"∂\", RowBox[{SuperscriptBox[RowBox[{\"(\", \n",
       "\n",
       " \n",
       ">                      SuperscriptBox[\"u\", \"*\"], \")\"}], \n",
       "\n",
       " \n",
       ">                    TagBox[RowBox[{\"(\", RowBox[{\"0\", \",\", \"1\"}], \")\"}], Derivative], \n",
       "\n",
       " \n",
       ">                    Rule[MultilineFunction, None]], \"\", \n",
       "\n",
       " \n",
       ">                   RowBox[{\"(\", RowBox[{\"x\", \",\", \"y\"}], \")\"}]}]}], \n",
       "\n",
       " \n",
       ">               Rule[MultilineFunction, None]]}], \"+\", \n",
       "\n",
       " \n",
       ">            RowBox[{RowBox[{\"η\", \"(\", RowBox[{\"x\", \",\", \"y\"}], \")\"}], \" \", \n",
       "\n",
       " \n",
       ">              FractionBox[RowBox[{\"∂\", \n",
       "\n",
       " \n",
       ">                 RowBox[{\"L\", \"(\", RowBox[{\"x\", \",\", \"y\", \",\", \n",
       "\n",
       " \n",
       ">                     RowBox[{SuperscriptBox[\"u\", \"*\"], \"(\", RowBox[{\"x\", \",\", \"y\"}], \n",
       "\n",
       " \n",
       ">                       \")\"}], \",\", RowBox[{SuperscriptBox[\"v\", \"*\"], \"(\", \n",
       "\n",
       " \n",
       ">                       RowBox[{\"x\", \",\", \"y\"}], \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                     RowBox[{SuperscriptBox[RowBox[{\"(\", SuperscriptBox[\"u\", \"*\"], \n",
       "\n",
       " \n",
       ">                          \")\"}], TagBox[RowBox[{\"(\", RowBox[{\"1\", \",\", \"0\"}], \n",
       "\n",
       " \n",
       ">                           \")\"}], Derivative], Rule[MultilineFunction, None]], \"\", \n",
       "\n",
       " \n",
       ">                       RowBox[{\"(\", RowBox[{\"x\", \",\", \"y\"}], \")\"}]}], \",\", \n",
       "\n",
       " \n",
       ">                     RowBox[{SuperscriptBox[RowBox[{\"(\", SuperscriptBox[\"u\", \"*\"], \n",
       "\n",
       " \n",
       ">                          \")\"}], TagBox[RowBox[{\"(\", RowBox[{\"0\", \",\", \"1\"}], \n",
       "\n",
       " \n",
       ">                           \")\"}], Derivative], Rule[MultilineFunction, None]], \"\", \n",
       "\n",
       " \n",
       ">                       RowBox[{\"(\", RowBox[{\"x\", \",\", \"y\"}], \")\"}]}], \",\", \n",
       "\n",
       " \n",
       ">                     RowBox[{SuperscriptBox[RowBox[{\"(\", SuperscriptBox[\"v\", \"*\"], \n",
       "\n",
       " \n",
       ">                          \")\"}], TagBox[RowBox[{\"(\", RowBox[{\"1\", \",\", \"0\"}], \n",
       "\n",
       " \n",
       ">                           \")\"}], Derivative], Rule[MultilineFunction, None]], \"\", \n",
       "\n",
       " \n",
       ">                       RowBox[{\"(\", RowBox[{\"x\", \",\", \"y\"}], \")\"}]}], \",\", \n",
       "\n",
       " \n",
       ">                     RowBox[{SuperscriptBox[RowBox[{\"(\", SuperscriptBox[\"v\", \"*\"], \n",
       "\n",
       " \n",
       ">                          \")\"}], TagBox[RowBox[{\"(\", RowBox[{\"0\", \",\", \"1\"}], \n",
       "\n",
       " \n",
       ">                           \")\"}], Derivative], Rule[MultilineFunction, None]], \"\", \n",
       "\n",
       " \n",
       ">                       RowBox[{\"(\", RowBox[{\"x\", \",\", \"y\"}], \")\"}]}]}], \")\"}]}], \n",
       "\n",
       " \n",
       ">               RowBox[{\"∂\", RowBox[{SuperscriptBox[\"u\", \"*\"], \"(\", \n",
       "\n",
       " \n",
       ">                   RowBox[{\"x\", \",\", \"y\"}], \")\"}]}], Rule[MultilineFunction,\\\n",
       " \n",
       ">    None]]}]}], \n",
       "       \",\", RowBox[{RowBox[{FractionBox[RowBox[{\"∂\", \n",
       "\n",
       " \n",
       ">                 RowBox[{\"ξ\", \"(\", RowBox[{\"x\", \",\", \"y\"}], \")\"}]}], \n",
       "\n",
       " \n",
       ">               RowBox[{\"∂\", \"x\"}], Rule[MultilineFunction, None]], \" \", \n",
       "\n",
       " \n",
       ">              FractionBox[RowBox[{\"∂\", \n",
       "\n",
       " \n",
       ">                 RowBox[{\"L\", \"(\", RowBox[{\"x\", \",\", \"y\", \",\", \n",
       "\n",
       " \n",
       ">                     RowBox[{SuperscriptBox[\"u\", \"*\"], \"(\", RowBox[{\"x\", \",\", \"y\"}], \n",
       "\n",
       " \n",
       ">                       \")\"}], \",\", RowBox[{SuperscriptBox[\"v\", \"*\"], \"(\", \n",
       "\n",
       " \n",
       ">                       RowBox[{\"x\", \",\", \"y\"}], \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                     RowBox[{SuperscriptBox[RowBox[{\"(\", SuperscriptBox[\"u\", \"*\"], \n",
       "\n",
       " \n",
       ">                          \")\"}], TagBox[RowBox[{\"(\", RowBox[{\"1\", \",\", \"0\"}], \n",
       "\n",
       " \n",
       ">                           \")\"}], Derivative], Rule[MultilineFunction, None]], \"\", \n",
       "\n",
       " \n",
       ">                       RowBox[{\"(\", RowBox[{\"x\", \",\", \"y\"}], \")\"}]}], \",\", \n",
       "\n",
       " \n",
       ">                     RowBox[{SuperscriptBox[RowBox[{\"(\", SuperscriptBox[\"u\", \"*\"], \n",
       "\n",
       " \n",
       ">                          \")\"}], TagBox[RowBox[{\"(\", RowBox[{\"0\", \",\", \"1\"}], \n",
       "\n",
       " \n",
       ">                           \")\"}], Derivative], Rule[MultilineFunction, None]], \"\", \n",
       "\n",
       " \n",
       ">                       RowBox[{\"(\", RowBox[{\"x\", \",\", \"y\"}], \")\"}]}], \",\", \n",
       "\n",
       " \n",
       ">                     RowBox[{SuperscriptBox[RowBox[{\"(\", SuperscriptBox[\"v\", \"*\"], \n",
       "\n",
       " \n",
       ">                          \")\"}], TagBox[RowBox[{\"(\", RowBox[{\"1\", \",\", \"0\"}], \n",
       "\n",
       " \n",
       ">                           \")\"}], Derivative], Rule[MultilineFunction, None]], \"\", \n",
       "\n",
       " \n",
       ">                       RowBox[{\"(\", RowBox[{\"x\", \",\", \"y\"}], \")\"}]}], \",\", \n",
       "\n",
       " \n",
       ">                     RowBox[{SuperscriptBox[RowBox[{\"(\", SuperscriptBox[\"v\", \"*\"], \n",
       "\n",
       " \n",
       ">                          \")\"}], TagBox[RowBox[{\"(\", RowBox[{\"0\", \",\", \"1\"}], \n",
       "\n",
       " \n",
       ">                           \")\"}], Derivative], Rule[MultilineFunction, None]], \"\", \n",
       "\n",
       " \n",
       ">                       RowBox[{\"(\", RowBox[{\"x\", \",\", \"y\"}], \")\"}]}]}], \")\"}]}], \n",
       "\n",
       " \n",
       ">               RowBox[{\"∂\", RowBox[{SuperscriptBox[RowBox[{\"(\", \n",
       "\n",
       " \n",
       ">                      SuperscriptBox[\"v\", \"*\"], \")\"}], \n",
       "\n",
       " \n",
       ">                    TagBox[RowBox[{\"(\", RowBox[{\"1\", \",\", \"0\"}], \")\"}], Derivative], \n",
       "\n",
       " \n",
       ">                    Rule[MultilineFunction, None]], \"\", \n",
       "\n",
       " \n",
       ">                   RowBox[{\"(\", RowBox[{\"x\", \",\", \"y\"}], \")\"}]}]}], \n",
       "\n",
       " \n",
       ">               Rule[MultilineFunction, None]]}], \"+\", \n",
       "\n",
       " \n",
       ">            RowBox[{FractionBox[RowBox[{\"∂\", \n",
       "\n",
       " \n",
       ">                 RowBox[{\"ξ\", \"(\", RowBox[{\"x\", \",\", \"y\"}], \")\"}]}], \n",
       "\n",
       " \n",
       ">               RowBox[{\"∂\", \"y\"}], Rule[MultilineFunction, None]], \" \", \n",
       "\n",
       " \n",
       ">              FractionBox[RowBox[{\"∂\", \n",
       "\n",
       " \n",
       ">                 RowBox[{\"L\", \"(\", RowBox[{\"x\", \",\", \"y\", \",\", \n",
       "\n",
       " \n",
       ">                     RowBox[{SuperscriptBox[\"u\", \"*\"], \"(\", RowBox[{\"x\", \",\", \"y\"}], \n",
       "\n",
       " \n",
       ">                       \")\"}], \",\", RowBox[{SuperscriptBox[\"v\", \"*\"], \"(\", \n",
       "\n",
       " \n",
       ">                       RowBox[{\"x\", \",\", \"y\"}], \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                     RowBox[{SuperscriptBox[RowBox[{\"(\", SuperscriptBox[\"u\", \"*\"], \n",
       "\n",
       " \n",
       ">                          \")\"}], TagBox[RowBox[{\"(\", RowBox[{\"1\", \",\", \"0\"}], \n",
       "\n",
       " \n",
       ">                           \")\"}], Derivative], Rule[MultilineFunction, None]], \"\", \n",
       "\n",
       " \n",
       ">                       RowBox[{\"(\", RowBox[{\"x\", \",\", \"y\"}], \")\"}]}], \",\", \n",
       "\n",
       " \n",
       ">                     RowBox[{SuperscriptBox[RowBox[{\"(\", SuperscriptBox[\"u\", \"*\"], \n",
       "\n",
       " \n",
       ">                          \")\"}], TagBox[RowBox[{\"(\", RowBox[{\"0\", \",\", \"1\"}], \n",
       "\n",
       " \n",
       ">                           \")\"}], Derivative], Rule[MultilineFunction, None]], \"\", \n",
       "\n",
       " \n",
       ">                       RowBox[{\"(\", RowBox[{\"x\", \",\", \"y\"}], \")\"}]}], \",\", \n",
       "\n",
       " \n",
       ">                     RowBox[{SuperscriptBox[RowBox[{\"(\", SuperscriptBox[\"v\", \"*\"], \n",
       "\n",
       " \n",
       ">                          \")\"}], TagBox[RowBox[{\"(\", RowBox[{\"1\", \",\", \"0\"}], \n",
       "\n",
       " \n",
       ">                           \")\"}], Derivative], Rule[MultilineFunction, None]], \"\", \n",
       "\n",
       " \n",
       ">                       RowBox[{\"(\", RowBox[{\"x\", \",\", \"y\"}], \")\"}]}], \",\", \n",
       "\n",
       " \n",
       ">                     RowBox[{SuperscriptBox[RowBox[{\"(\", SuperscriptBox[\"v\", \"*\"], \n",
       "\n",
       " \n",
       ">                          \")\"}], TagBox[RowBox[{\"(\", RowBox[{\"0\", \",\", \"1\"}], \n",
       "\n",
       " \n",
       ">                           \")\"}], Derivative], Rule[MultilineFunction, None]], \"\", \n",
       "\n",
       " \n",
       ">                       RowBox[{\"(\", RowBox[{\"x\", \",\", \"y\"}], \")\"}]}]}], \")\"}]}], \n",
       "\n",
       " \n",
       ">               RowBox[{\"∂\", RowBox[{SuperscriptBox[RowBox[{\"(\", \n",
       "\n",
       " \n",
       ">                      SuperscriptBox[\"v\", \"*\"], \")\"}], \n",
       "\n",
       " \n",
       ">                    TagBox[RowBox[{\"(\", RowBox[{\"0\", \",\", \"1\"}], \")\"}], Derivative], \n",
       "\n",
       " \n",
       ">                    Rule[MultilineFunction, None]], \"\", \n",
       "\n",
       " \n",
       ">                   RowBox[{\"(\", RowBox[{\"x\", \",\", \"y\"}], \")\"}]}]}], \n",
       "\n",
       " \n",
       ">               Rule[MultilineFunction, None]]}], \"+\", \n",
       "\n",
       " \n",
       ">            RowBox[{RowBox[{\"ξ\", \"(\", RowBox[{\"x\", \",\", \"y\"}], \")\"}], \" \", \n",
       "\n",
       " \n",
       ">              FractionBox[RowBox[{\"∂\", \n",
       "\n",
       " \n",
       ">                 RowBox[{\"L\", \"(\", RowBox[{\"x\", \",\", \"y\", \",\", \n",
       "\n",
       " \n",
       ">                     RowBox[{SuperscriptBox[\"u\", \"*\"], \"(\", RowBox[{\"x\", \",\", \"y\"}], \n",
       "\n",
       " \n",
       ">                       \")\"}], \",\", RowBox[{SuperscriptBox[\"v\", \"*\"], \"(\", \n",
       "\n",
       " \n",
       ">                       RowBox[{\"x\", \",\", \"y\"}], \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                     RowBox[{SuperscriptBox[RowBox[{\"(\", SuperscriptBox[\"u\", \"*\"], \n",
       "\n",
       " \n",
       ">                          \")\"}], TagBox[RowBox[{\"(\", RowBox[{\"1\", \",\", \"0\"}], \n",
       "\n",
       " \n",
       ">                           \")\"}], Derivative], Rule[MultilineFunction, None]], \"\", \n",
       "\n",
       " \n",
       ">                       RowBox[{\"(\", RowBox[{\"x\", \",\", \"y\"}], \")\"}]}], \",\", \n",
       "\n",
       " \n",
       ">                     RowBox[{SuperscriptBox[RowBox[{\"(\", SuperscriptBox[\"u\", \"*\"], \n",
       "\n",
       " \n",
       ">                          \")\"}], TagBox[RowBox[{\"(\", RowBox[{\"0\", \",\", \"1\"}], \n",
       "\n",
       " \n",
       ">                           \")\"}], Derivative], Rule[MultilineFunction, None]], \"\", \n",
       "\n",
       " \n",
       ">                       RowBox[{\"(\", RowBox[{\"x\", \",\", \"y\"}], \")\"}]}], \",\", \n",
       "\n",
       " \n",
       ">                     RowBox[{SuperscriptBox[RowBox[{\"(\", SuperscriptBox[\"v\", \"*\"], \n",
       "\n",
       " \n",
       ">                          \")\"}], TagBox[RowBox[{\"(\", RowBox[{\"1\", \",\", \"0\"}], \n",
       "\n",
       " \n",
       ">                           \")\"}], Derivative], Rule[MultilineFunction, None]], \"\", \n",
       "\n",
       " \n",
       ">                       RowBox[{\"(\", RowBox[{\"x\", \",\", \"y\"}], \")\"}]}], \",\", \n",
       "\n",
       " \n",
       ">                     RowBox[{SuperscriptBox[RowBox[{\"(\", SuperscriptBox[\"v\", \"*\"], \n",
       "\n",
       " \n",
       ">                          \")\"}], TagBox[RowBox[{\"(\", RowBox[{\"0\", \",\", \"1\"}], \")\"}], \n",
       "\n",
       " \n",
       ">                         Derivative], Rule[MultilineFunction, None]], \"\", \n",
       "\n",
       " \n",
       ">                       RowBox[{\"(\", RowBox[{\"x\", \",\", \"y\"}], \")\"}]}]}], \")\"}]}], \n",
       "\n",
       " \n",
       ">               RowBox[{\"∂\", RowBox[{SuperscriptBox[\"v\", \"*\"], \"(\", \n",
       "\n",
       " \n",
       ">                   RowBox[{\"x\", \",\", \"y\"}], \")\"}]}], Rule[MultilineFunction,\\\n",
       " \n",
       ">    None]]}]}]}]\\\n",
       ", \"}\"}], TraditionalForm]\n"
      ]
     },
     "execution_count": 16,
     "metadata": {
      "text/html": [],
      "text/plain": []
     },
     "output_type": "execute_result"
    }
   ],
   "source": [
    "(*两个二元函数*)\n",
    "Block[\n",
    "{f, L, x, y, u, v, ux, uy, vx, vy, a, b, \\[Eta], \\[Xi]},\n",
    "u[x,y,a] := SuperStar[u][x,y] + a*\\[Eta][x,y];\n",
    "v[x,y,b] := SuperStar[v][x,y] + b*\\[Xi][x,y];\n",
    "ux[x_,y_,a_] := D[u[x,y,a], x];\n",
    "uy[x_,y_,a_] := D[u[x,y,a], y];\n",
    "vx[x_,y_,b_] := D[v[x,y,b], x];\n",
    "vy[x_,y_,b_] := D[v[x,y,b], y];\n",
    "f = L[x, y, u[x,y,a], v[x,y,b], ux[x,y,a], uy[x,y,a], vx[x,y,b], vy[x,y,b]];\n",
    "{D[f, a], D[f, b]}/.a->0/.b->0//pdConv\n",
    "]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "忽略计算结果中的函数 $L$ 所依赖的变量，有\n",
    "\n",
    "$$\n",
    "\\frac{\\partial L}{\\partial u_{y}} {\\eta}_y +\n",
    "\\frac{\\partial L}{\\partial u_{x}} {\\eta}_x + \\frac{\\partial L}{\\partial u}\\eta,\\; \n",
    "\\frac{\\partial L}{\\partial v_{y}} {\\xi}_y +\n",
    "\\frac{\\partial L}{\\partial v_{x}} {\\xi}_x + \\frac{\\partial L}{\\partial u}\\xi\n",
    "$$\n",
    "分部积分，化简得到奥氏方程组\n",
    "\n",
    "$$\\boxed{-\n",
    "\\frac{\\partial}{\\partial y}\\frac{\\partial L}{\\partial u_{y}}-\n",
    "\\frac{\\partial}{\\partial x}\\frac{\\partial L}{\\partial u_{x}}+L_u=0,\\;-\n",
    "\\frac{\\partial}{\\partial y}\\frac{\\partial L}{\\partial v_{y}}-\n",
    "\\frac{\\partial}{\\partial x}\\frac{\\partial L}{\\partial v_{x}}+L_v=0.}\n",
    "$$\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 63,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2021-02-02T17:27:55+08:00",
     "start_time": "2021-02-02T09:27:55.386Z"
    }
   },
   "outputs": [],
   "source": [
    "Options[EulerEqn2] = {eXpand -> False};\n",
    "(* Euler equations for fields *)\n",
    "\n",
    "EulerEqn2[dichte_, depend_List, independ_List, options___] :=\n",
    "  Module[{f0, ruleg, fh, e, w, y, x, expand, euler = {}, wtable},\n",
    "  (*--- 检查选项 ---*)\n",
    "   {expand} = {eXpand} /. {options} /. Options[EulerEqn2]; \n",
    "    wtable = Table[w[i], {i, 1, Length[depend]}]; \n",
    "   (*--- 定义函数变分 ---*)\n",
    "    f0 = Function[x, y + e*w]; \n",
    "    (*--- 定义替换规则---*)\n",
    "    ruleg[i_] :=\n",
    "     (b_.)*Apply[Derivative[n___][wtable[[i]]], independ] :> \n",
    "      (-1)^Apply[Plus, {n}]*HoldForm[D[b, Delete[Thread[{independ, {n}}], 0]]]; \n",
    "    (*--- 对因变量的变分 ---*)\n",
    "    Do[fh = dichte /. depend[[j]] -> f0 /. \n",
    "        {x -> independ, y -> Apply[depend[[j]], independ], \n",
    "\t w -> Apply[wtable[[j]], independ]};\n",
    "    (*--- 对参数求导，置零 ---*)\n",
    "      fh = Expand[D[fh, e] /. e -> 0];\n",
    "    (*--- 变换到 w ---*)\n",
    "      fh = fh  /. ruleg[j] /. Apply[wtable[[j]], independ] -> 1;\n",
    "      AppendTo[euler, fh==0], {j, 1, Length[depend]}]; \n",
    "    (*--- 欧拉方程 ---*)\n",
    "    If[expand, euler = ReleaseHold[euler], euler]]//Simplify"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 66,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2021-02-02T17:27:56+08:00",
     "start_time": "2021-02-02T09:27:55.985Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div><img alt=\"Output\" src=\"\"></div>"
      ],
      "text/plain": [
       "FormBox[RowBox[{\"{\", RowBox[{RowBox[{RowBox[{FractionBox[RowBox[\n",
       "\n",
       " \n",
       ">                {\"∂\", RowBox[{\"L\", \"(\", \n",
       "                RowBox[{\"x\", \",\", \"y\", \",\", \n",
       "\n",
       " \n",
       ">                     RowBox[{\"u\", \"(\", RowBox[{\"x\", \",\", \"y\"}], \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                     RowBox[{SuperscriptBox[RowBox[{\"(\", \n",
       "\n",
       " \n",
       ">                          RowBox[{\"x$\", \"\", \n",
       "\n",
       " \n",
       ">                            RowBox[{RowBox[{\"u\", \"(\", RowBox[{\"x\", \",\", \"y\"}], \n",
       "\n",
       " \n",
       ">                             \")\"}], \"+\", RowBox[{\"0\", \" \", \"1\"}]}]}], \")\"}], \n",
       "\n",
       " \n",
       ">                        TagBox[RowBox[{\"(\", RowBox[{\"1\", \",\", \"0\"}], \")\"}], \n",
       "\n",
       " \n",
       ">                         Derivative], Rule[MultilineFunction, None]], \"\", \n",
       "\n",
       " \n",
       ">                       RowBox[{\"(\", RowBox[{\"x\", \",\", \"y\"}], \")\"}]}], \",\", \n",
       "\n",
       " \n",
       ">                     RowBox[{SuperscriptBox[RowBox[{\"(\", \n",
       "\n",
       " \n",
       ">                          RowBox[{\"x$\", \"\", \n",
       "\n",
       " \n",
       ">                            RowBox[{RowBox[{\"u\", \"(\", RowBox[{\"x\", \",\", \"y\"}], \n",
       "\n",
       " \n",
       ">                             \")\"}], \"+\", RowBox[{\"0\", \" \", \"1\"}]}]}], \")\"}], \n",
       "\n",
       " \n",
       ">                        TagBox[RowBox[{\"(\", RowBox[{\"0\", \",\", \"1\"}], \")\"}], \n",
       "\n",
       " \n",
       ">                         Derivative], Rule[MultilineFunction, None]], \"\", \n",
       "\n",
       " \n",
       ">                       RowBox[{\"(\", RowBox[{\"x\", \",\", \"y\"}], \")\"}]}], \",\", \n",
       "\n",
       " \n",
       ">                     RowBox[{\"v\", \"(\", RowBox[{\"x\", \",\", \"y\"}], \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                     RowBox[{SuperscriptBox[\"v\", \n",
       "\n",
       " \n",
       ">                        TagBox[RowBox[{\"(\", RowBox[{\"1\", \",\", \"0\"}], \")\"}], \n",
       "\n",
       " \n",
       ">                         Derivative], Rule[MultilineFunction, None]], \"(\", \n",
       "\n",
       " \n",
       ">                       RowBox[{\"x\", \",\", \"y\"}], \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                     RowBox[{SuperscriptBox[\"v\", \n",
       "\n",
       " \n",
       ">                        TagBox[RowBox[{\"(\", RowBox[{\"0\", \",\", \"1\"}], \")\"}], \n",
       "\n",
       " \n",
       ">                         Derivative], Rule[MultilineFunction, None]], \"(\", \n",
       "\n",
       " \n",
       ">                       RowBox[{\"x\", \",\", \"y\"}], \")\"}]}], \")\"}]}], \n",
       "\n",
       " \n",
       ">               RowBox[{\"∂\", RowBox[{\"u\", \"(\", RowBox[{\"x\", \",\", \"y\"}], \")\"}]}], \n",
       "\n",
       " \n",
       ">               Rule[MultilineFunction, None]], \"+\", \n",
       "\n",
       " \n",
       ">              RowBox[{FractionBox[RowBox[{\"∂\", \n",
       "\n",
       " \n",
       ">                   RowBox[{RowBox[{\"(\", RowBox[{\"x$\", \"\", \"1\"}], \")\"}], \"\", \n",
       "\n",
       " \n",
       ">                     RowBox[{\"(\", RowBox[{\"x\", \",\", \"y\"}], \")\"}]}]}], \n",
       "\n",
       " \n",
       ">                 RowBox[{\"∂\", \"x\"}], Rule[MultilineFunction, None]], \" \", \n",
       "\n",
       " \n",
       ">                FractionBox[RowBox[{\"∂\", \n",
       "                RowBox[{\"L\", \"(\", \n",
       "\n",
       " \n",
       ">                     RowBox[{\"x\", \",\", \"y\", \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{\"u\", \"(\", RowBox[{\"x\", \",\", \"y\"}], \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{SuperscriptBox[RowBox[{\"(\", \n",
       "\n",
       " \n",
       ">                            RowBox[{\"x$\", \"\", \n",
       "\n",
       " \n",
       ">                             RowBox[{RowBox[{\"u\", \"(\", \n",
       "\n",
       " \n",
       ">                             RowBox[{\"x\", \",\", \"y\"}], \")\"}], \"+\", \n",
       "\n",
       " \n",
       ">                             RowBox[{\"0\", \" \", \"1\"}]}]}], \")\"}], \n",
       "\n",
       " \n",
       ">                          TagBox[RowBox[{\"(\", RowBox[{\"1\", \",\", \"0\"}], \")\"}], \n",
       "\n",
       " \n",
       ">                           Derivative], Rule[MultilineFunction, None]], \"\", \n",
       "\n",
       " \n",
       ">                         RowBox[{\"(\", RowBox[{\"x\", \",\", \"y\"}], \")\"}]}], \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{SuperscriptBox[RowBox[{\"(\", \n",
       "\n",
       " \n",
       ">                            RowBox[{\"x$\", \"\", \n",
       "\n",
       " \n",
       ">                             RowBox[{RowBox[{\"u\", \"(\", \n",
       "\n",
       " \n",
       ">                             RowBox[{\"x\", \",\", \"y\"}], \")\"}], \"+\", \n",
       "\n",
       " \n",
       ">                             RowBox[{\"0\", \" \", \"1\"}]}]}], \")\"}], \n",
       "\n",
       " \n",
       ">                          TagBox[RowBox[{\"(\", RowBox[{\"0\", \",\", \"1\"}], \")\"}], \n",
       "\n",
       " \n",
       ">                           Derivative], Rule[MultilineFunction, None]], \"\", \n",
       "\n",
       " \n",
       ">                         RowBox[{\"(\", RowBox[{\"x\", \",\", \"y\"}], \")\"}]}], \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{\"v\", \"(\", RowBox[{\"x\", \",\", \"y\"}], \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{SuperscriptBox[\"v\", \n",
       "\n",
       " \n",
       ">                          TagBox[RowBox[{\"(\", RowBox[{\"1\", \",\", \"0\"}], \")\"}], \n",
       "\n",
       " \n",
       ">                           Derivative], Rule[MultilineFunction, None]], \"(\", \n",
       "\n",
       " \n",
       ">                         RowBox[{\"x\", \",\", \"y\"}], \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{SuperscriptBox[\"v\", \n",
       "\n",
       " \n",
       ">                          TagBox[RowBox[{\"(\", RowBox[{\"0\", \",\", \"1\"}], \")\"}], \n",
       "\n",
       " \n",
       ">                           Derivative], Rule[MultilineFunction, None]], \"(\", \n",
       "\n",
       " \n",
       ">                         RowBox[{\"x\", \",\", \"y\"}], \")\"}]}], \")\"}]}], \n",
       "\n",
       " \n",
       ">                 RowBox[{\"∂\", RowBox[{SuperscriptBox[RowBox[{\"(\", \n",
       "\n",
       " \n",
       ">                        RowBox[{\"x$\", \"\", \n",
       "\n",
       " \n",
       ">                          RowBox[{RowBox[{\"u\", \"(\", RowBox[{\"x\", \",\", \"y\"}], \n",
       "\n",
       " \n",
       ">                             \")\"}], \"+\", RowBox[{\"0\", \" \", \"1\"}]}]}], \")\"}], \n",
       "\n",
       " \n",
       ">                      TagBox[RowBox[{\"(\", RowBox[{\"1\", \",\", \"0\"}], \")\"}], \n",
       "\n",
       " \n",
       ">                       Derivative], Rule[MultilineFunction, None]], \"\", \n",
       "\n",
       " \n",
       ">                     RowBox[{\"(\", RowBox[{\"x\", \",\", \"y\"}], \")\"}]}]}], \n",
       "\n",
       " \n",
       ">                 Rule[MultilineFunction, None]]}], \"+\", \n",
       "\n",
       " \n",
       ">              RowBox[{FractionBox[RowBox[{\"∂\", \n",
       "\n",
       " \n",
       ">                   RowBox[{RowBox[{\"(\", RowBox[{\"x$\", \"\", \"1\"}], \")\"}], \"\", \n",
       "\n",
       " \n",
       ">                     RowBox[{\"(\", RowBox[{\"x\", \",\", \"y\"}], \")\"}]}]}], \n",
       "\n",
       " \n",
       ">                 RowBox[{\"∂\", \"y\"}], Rule[MultilineFunction, None]], \" \", \n",
       "\n",
       " \n",
       ">                FractionBox[RowBox[{\"∂\", \n",
       "                RowBox[{\"L\", \"(\", \n",
       "\n",
       " \n",
       ">                     RowBox[{\"x\", \",\", \"y\", \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{\"u\", \"(\", RowBox[{\"x\", \",\", \"y\"}], \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{SuperscriptBox[RowBox[{\"(\", \n",
       "\n",
       " \n",
       ">                            RowBox[{\"x$\", \"\", \n",
       "\n",
       " \n",
       ">                              RowBox[{RowBox[{\"u\", \"(\", \n",
       "\n",
       " \n",
       ">                             RowBox[{\"x\", \",\", \"y\"}], \")\"}], \"+\", \n",
       "\n",
       " \n",
       ">                              RowBox[{\"0\", \" \", \"1\"}]}]}], \")\"}], \n",
       "\n",
       " \n",
       ">                          TagBox[RowBox[{\"(\", RowBox[{\"1\", \",\", \"0\"}], \")\"}], \n",
       "\n",
       " \n",
       ">                           Derivative], Rule[MultilineFunction, None]], \"\", \n",
       "\n",
       " \n",
       ">                         RowBox[{\"(\", RowBox[{\"x\", \",\", \"y\"}], \")\"}]}], \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{SuperscriptBox[RowBox[{\"(\", \n",
       "\n",
       " \n",
       ">                            RowBox[{\"x$\", \"\", \n",
       "\n",
       " \n",
       ">                              RowBox[{RowBox[{\"u\", \"(\", \n",
       "\n",
       " \n",
       ">                             RowBox[{\"x\", \",\", \"y\"}], \")\"}], \"+\", \n",
       "\n",
       " \n",
       ">                              RowBox[{\"0\", \" \", \"1\"}]}]}], \")\"}], \n",
       "\n",
       " \n",
       ">                          TagBox[RowBox[{\"(\", RowBox[{\"0\", \",\", \"1\"}], \")\"}], \n",
       "\n",
       " \n",
       ">                           Derivative], Rule[MultilineFunction, None]], \"\", \n",
       "\n",
       " \n",
       ">                         RowBox[{\"(\", RowBox[{\"x\", \",\", \"y\"}], \")\"}]}], \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{\"v\", \"(\", RowBox[{\"x\", \",\", \"y\"}], \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{SuperscriptBox[\"v\", \n",
       "\n",
       " \n",
       ">                          TagBox[RowBox[{\"(\", RowBox[{\"1\", \",\", \"0\"}], \")\"}], \n",
       "\n",
       " \n",
       ">                           Derivative], Rule[MultilineFunction, None]], \"(\", \n",
       "\n",
       " \n",
       ">                         RowBox[{\"x\", \",\", \"y\"}], \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{SuperscriptBox[\"v\", \n",
       "\n",
       " \n",
       ">                          TagBox[RowBox[{\"(\", RowBox[{\"0\", \",\", \"1\"}], \")\"}], \n",
       "\n",
       " \n",
       ">                           Derivative], Rule[MultilineFunction, None]], \"(\", \n",
       "\n",
       " \n",
       ">                         RowBox[{\"x\", \",\", \"y\"}], \")\"}]}], \")\"}]}], \n",
       "\n",
       " \n",
       ">                 RowBox[{\"∂\", RowBox[{SuperscriptBox[RowBox[{\"(\", \n",
       "\n",
       " \n",
       ">                        RowBox[{\"x$\", \"\", \n",
       "\n",
       " \n",
       ">                          RowBox[{RowBox[{\"u\", \"(\", RowBox[{\"x\", \",\", \"y\"}], \n",
       "\n",
       " \n",
       ">                             \")\"}], \"+\", RowBox[{\"0\", \" \", \"1\"}]}]}], \")\"}], \n",
       "\n",
       " \n",
       ">                      TagBox[RowBox[{\"(\", RowBox[{\"0\", \",\", \"1\"}], \")\"}], \n",
       "\n",
       " \n",
       ">                       Derivative], Rule[MultilineFunction, None]], \"\", \n",
       "\n",
       " \n",
       ">                     RowBox[{\"(\", RowBox[{\"x\", \",\", \"y\"}], \")\"}]}]}], \n",
       "\n",
       " \n",
       ">                 Rule[MultilineFunction, None]]}]}], \"\", \"0\"}], \",\", \n",
       "\n",
       " \n",
       ">          RowBox[{RowBox[{FractionBox[RowBox[{\"∂\", \n",
       "\n",
       " \n",
       ">                 RowBox[{\"L\", \"(\", RowBox[{\"x\", \",\", \"y\", \",\", \n",
       "\n",
       " \n",
       ">                     RowBox[{\"u\", \"(\", RowBox[{\"x\", \",\", \"y\"}], \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                     RowBox[{SuperscriptBox[\"u\", \n",
       "\n",
       " \n",
       ">                        TagBox[RowBox[{\"(\", RowBox[{\"1\", \",\", \"0\"}], \")\"}], \n",
       "\n",
       " \n",
       ">                         Derivative], Rule[MultilineFunction, None]], \"(\", \n",
       "\n",
       " \n",
       ">                       RowBox[{\"x\", \",\", \"y\"}], \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                     RowBox[{SuperscriptBox[\"u\", \n",
       "\n",
       " \n",
       ">                        TagBox[RowBox[{\"(\", RowBox[{\"0\", \",\", \"1\"}], \")\"}], \n",
       "\n",
       " \n",
       ">                         Derivative], Rule[MultilineFunction, None]], \"(\", \n",
       "\n",
       " \n",
       ">                       RowBox[{\"x\", \",\", \"y\"}], \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                     RowBox[{\"v\", \"(\", RowBox[{\"x\", \",\", \"y\"}], \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                     RowBox[{SuperscriptBox[RowBox[{\"(\", \n",
       "\n",
       " \n",
       ">                          RowBox[{\"x$\", \"\", \n",
       "\n",
       " \n",
       ">                            RowBox[{RowBox[{\"v\", \"(\", RowBox[{\"x\", \",\", \"y\"}], \n",
       "\n",
       " \n",
       ">                             \")\"}], \"+\", RowBox[{\"0\", \" \", \"1\"}]}]}], \")\"}], \n",
       "\n",
       " \n",
       ">                        TagBox[RowBox[{\"(\", RowBox[{\"1\", \",\", \"0\"}], \")\"}], \n",
       "\n",
       " \n",
       ">                         Derivative], Rule[MultilineFunction, None]], \"\", \n",
       "\n",
       " \n",
       ">                       RowBox[{\"(\", RowBox[{\"x\", \",\", \"y\"}], \")\"}]}], \",\", \n",
       "\n",
       " \n",
       ">                     RowBox[{SuperscriptBox[RowBox[{\"(\", \n",
       "\n",
       " \n",
       ">                          RowBox[{\"x$\", \"\", \n",
       "\n",
       " \n",
       ">                            RowBox[{RowBox[{\"v\", \"(\", RowBox[{\"x\", \",\", \"y\"}], \n",
       "\n",
       " \n",
       ">                              \")\"}], \"+\", RowBox[{\"0\", \" \", \"1\"}]}]}], \")\"}], \n",
       "\n",
       " \n",
       ">                        TagBox[RowBox[{\"(\", RowBox[{\"0\", \",\", \"1\"}], \")\"}], \n",
       "\n",
       " \n",
       ">                         Derivative], Rule[MultilineFunction, None]], \"\", \n",
       "\n",
       " \n",
       ">                       RowBox[{\"(\", RowBox[{\"x\", \",\", \"y\"}], \")\"}]}]}], \")\"}]}], \n",
       "\n",
       " \n",
       ">               RowBox[{\"∂\", RowBox[{\"v\", \"(\", RowBox[{\"x\", \",\", \"y\"}], \")\"}]}], \n",
       "\n",
       " \n",
       ">               Rule[MultilineFunction, None]], \"+\", \n",
       "\n",
       " \n",
       ">              RowBox[{FractionBox[RowBox[{\"∂\", \n",
       "\n",
       " \n",
       ">                   RowBox[{RowBox[{\"(\", RowBox[{\"x$\", \"\", \"1\"}], \")\"}], \"\", \n",
       "\n",
       " \n",
       ">                     RowBox[{\"(\", RowBox[{\"x\", \",\", \"y\"}], \")\"}]}]}], \n",
       "\n",
       " \n",
       ">                 RowBox[{\"∂\", \"x\"}], Rule[MultilineFunction, None]], \" \", \n",
       "\n",
       " \n",
       ">                FractionBox[RowBox[{\"∂\", \n",
       "                RowBox[{\"L\", \"(\", \n",
       "\n",
       " \n",
       ">                     RowBox[{\"x\", \",\", \"y\", \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{\"u\", \"(\", RowBox[{\"x\", \",\", \"y\"}], \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{SuperscriptBox[\"u\", \n",
       "\n",
       " \n",
       ">                          TagBox[RowBox[{\"(\", RowBox[{\"1\", \",\", \"0\"}], \")\"}], \n",
       "\n",
       " \n",
       ">                           Derivative], Rule[MultilineFunction, None]], \"(\", \n",
       "\n",
       " \n",
       ">                         RowBox[{\"x\", \",\", \"y\"}], \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{SuperscriptBox[\"u\", \n",
       "\n",
       " \n",
       ">                          TagBox[RowBox[{\"(\", RowBox[{\"0\", \",\", \"1\"}], \")\"}], \n",
       "\n",
       " \n",
       ">                           Derivative], Rule[MultilineFunction, None]], \"(\", \n",
       "\n",
       " \n",
       ">                         RowBox[{\"x\", \",\", \"y\"}], \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{\"v\", \"(\", RowBox[{\"x\", \",\", \"y\"}], \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{SuperscriptBox[RowBox[{\"(\", \n",
       "\n",
       " \n",
       ">                            RowBox[{\"x$\", \"\", \n",
       "\n",
       " \n",
       ">                              RowBox[{RowBox[{\"v\", \"(\", \n",
       "\n",
       " \n",
       ">                             RowBox[{\"x\", \",\", \"y\"}], \")\"}], \"+\", \n",
       "\n",
       " \n",
       ">                              RowBox[{\"0\", \" \", \"1\"}]}]}], \")\"}], \n",
       "\n",
       " \n",
       ">                          TagBox[RowBox[{\"(\", RowBox[{\"1\", \",\", \"0\"}], \")\"}], \n",
       "\n",
       " \n",
       ">                           Derivative], Rule[MultilineFunction, None]], \"\", \n",
       "\n",
       " \n",
       ">                         RowBox[{\"(\", RowBox[{\"x\", \",\", \"y\"}], \")\"}]}], \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{SuperscriptBox[RowBox[{\"(\", \n",
       "\n",
       " \n",
       ">                            RowBox[{\"x$\", \"\", \n",
       "\n",
       " \n",
       ">                              RowBox[{RowBox[{\"v\", \"(\", RowBox[{\"x\", \",\", \"y\"}], \n",
       "\n",
       " \n",
       ">                              \")\"}], \"+\", RowBox[{\"0\", \" \", \"1\"}]}]}], \")\"}], \n",
       "\n",
       " \n",
       ">                          TagBox[RowBox[{\"(\", RowBox[{\"0\", \",\", \"1\"}], \")\"}], \n",
       "\n",
       " \n",
       ">                           Derivative], Rule[MultilineFunction, None]], \"\", \n",
       "\n",
       " \n",
       ">                         RowBox[{\"(\", RowBox[{\"x\", \",\", \"y\"}], \")\"}]}]}], \")\"}]}], \n",
       "\n",
       " \n",
       ">                 RowBox[{\"∂\", RowBox[{SuperscriptBox[RowBox[{\"(\", \n",
       "\n",
       " \n",
       ">                        RowBox[{\"x$\", \"\", \n",
       "\n",
       " \n",
       ">                          RowBox[{RowBox[{\"v\", \"(\", RowBox[{\"x\", \",\", \"y\"}], \n",
       "\n",
       " \n",
       ">                             \")\"}], \"+\", RowBox[{\"0\", \" \", \"1\"}]}]}], \")\"}], \n",
       "\n",
       " \n",
       ">                      TagBox[RowBox[{\"(\", RowBox[{\"1\", \",\", \"0\"}], \")\"}], \n",
       "\n",
       " \n",
       ">                       Derivative], Rule[MultilineFunction, None]], \"\", \n",
       "\n",
       " \n",
       ">                     RowBox[{\"(\", RowBox[{\"x\", \",\", \"y\"}], \")\"}]}]}], \n",
       "\n",
       " \n",
       ">                 Rule[MultilineFunction, None]]}], \"+\", \n",
       "\n",
       " \n",
       ">              RowBox[{FractionBox[RowBox[{\"∂\", \n",
       "\n",
       " \n",
       ">                   RowBox[{RowBox[{\"(\", RowBox[{\"x$\", \"\", \"1\"}], \")\"}], \"\", \n",
       "\n",
       " \n",
       ">                     RowBox[{\"(\", RowBox[{\"x\", \",\", \"y\"}], \")\"}]}]}], \n",
       "\n",
       " \n",
       ">                 RowBox[{\"∂\", \"y\"}], Rule[MultilineFunction, None]], \" \", \n",
       "\n",
       " \n",
       ">                FractionBox[RowBox[{\"∂\", \n",
       "                RowBox[{\"L\", \"(\", \n",
       "\n",
       " \n",
       ">                     RowBox[{\"x\", \",\", \"y\", \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{\"u\", \"(\", RowBox[{\"x\", \",\", \"y\"}], \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{SuperscriptBox[\"u\", \n",
       "\n",
       " \n",
       ">                          TagBox[RowBox[{\"(\", RowBox[{\"1\", \",\", \"0\"}], \")\"}], \n",
       "\n",
       " \n",
       ">                           Derivative], Rule[MultilineFunction, None]], \"(\", \n",
       "\n",
       " \n",
       ">                         RowBox[{\"x\", \",\", \"y\"}], \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{SuperscriptBox[\"u\", \n",
       "\n",
       " \n",
       ">                          TagBox[RowBox[{\"(\", RowBox[{\"0\", \",\", \"1\"}], \")\"}], \n",
       "\n",
       " \n",
       ">                           Derivative], Rule[MultilineFunction, None]], \"(\", \n",
       "\n",
       " \n",
       ">                         RowBox[{\"x\", \",\", \"y\"}], \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{\"v\", \"(\", RowBox[{\"x\", \",\", \"y\"}], \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{SuperscriptBox[RowBox[{\"(\", \n",
       "\n",
       " \n",
       ">                            RowBox[{\"x$\", \"\", \n",
       "\n",
       " \n",
       ">                              RowBox[{RowBox[{\"v\", \"(\", RowBox[{\"x\", \",\", \"y\"}], \n",
       "\n",
       " \n",
       ">                              \")\"}], \"+\", RowBox[{\"0\", \" \", \"1\"}]}]}], \")\"}], \n",
       "\n",
       " \n",
       ">                          TagBox[RowBox[{\"(\", RowBox[{\"1\", \",\", \"0\"}], \")\"}], \n",
       "\n",
       " \n",
       ">                           Derivative], Rule[MultilineFunction, None]], \"\", \n",
       "\n",
       " \n",
       ">                         RowBox[{\"(\", RowBox[{\"x\", \",\", \"y\"}], \")\"}]}], \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{SuperscriptBox[RowBox[{\"(\", \n",
       "\n",
       " \n",
       ">                            RowBox[{\"x$\", \"\", \n",
       "\n",
       " \n",
       ">                              RowBox[{RowBox[{\"v\", \"(\", RowBox[{\"x\", \",\", \"y\"}], \n",
       "\n",
       " \n",
       ">                              \")\"}], \"+\", RowBox[{\"0\", \" \", \"1\"}]}]}], \")\"}], \n",
       "\n",
       " \n",
       ">                          TagBox[RowBox[{\"(\", RowBox[{\"0\", \",\", \"1\"}], \")\"}], \n",
       "\n",
       " \n",
       ">                           Derivative], Rule[MultilineFunction, None]], \"\", \n",
       "\n",
       " \n",
       ">                         RowBox[{\"(\", RowBox[{\"x\", \",\", \"y\"}], \")\"}]}]}], \")\"}]}], \n",
       "\n",
       " \n",
       ">                 RowBox[{\"∂\", RowBox[{SuperscriptBox[RowBox[{\"(\", \n",
       "\n",
       " \n",
       ">                        RowBox[{\"x$\", \"\", \n",
       "\n",
       " \n",
       ">                          RowBox[{RowBox[{\"v\", \"(\", RowBox[{\"x\", \",\", \"y\"}], \")\"}], \n",
       "\n",
       " \n",
       ">                            \"+\", RowBox[{\"0\", \" \", \"1\"}]}]}], \")\"}], \n",
       "\n",
       " \n",
       ">                      TagBox[RowBox[{\"(\", RowBox[{\"0\", \",\", \"1\"}], \")\"}], \n",
       "\n",
       " \n",
       ">                       Derivative], Rule[MultilineFunction, None]], \"\", \n",
       "\n",
       " \n",
       ">                     RowBox[{\"(\", RowBox[{\"x\", \",\", \"y\"}], \")\"}]}]}], \n",
       "\n",
       " \n",
       ">                 Rule[MultilineFunction, None]]}]}], \"\", \"0\"}]}], \"}\"}],\\\n",
       " \n",
       ">    TraditionalForm]\n"
      ]
     },
     "execution_count": 67,
     "metadata": {
      "text/html": [],
      "text/plain": []
     },
     "output_type": "execute_result"
    }
   ],
   "source": [
    "l = L[x, y, u[x,y], D[u[x,y],x], D[u[x,y],y], v[x,y], D[v[x,y],x], D[v[x,y],y]];\n",
    "EulerEqn2[l, {u,v}, {x,y}, eXpand -> True]//pdConv"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2021-02-03T22:06:55+08:00",
     "start_time": "2021-02-03T14:06:54.605Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div><img alt=\"Output\" src=\"\"></div>"
      ],
      "text/plain": [
       "FormBox[RowBox[{\"{\", RowBox[{RowBox[{RowBox[{FractionBox[RowBox[\n",
       "\n",
       " \n",
       ">                {\"∂\", RowBox[{\"L\", \"(\", \n",
       "                RowBox[{\"x\", \",\", \"y\", \",\", \n",
       "\n",
       " \n",
       ">                     RowBox[{\"u\", \"(\", RowBox[{\"x\", \",\", \"y\"}], \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                     RowBox[{SuperscriptBox[\"u\", \n",
       "\n",
       " \n",
       ">                        TagBox[RowBox[{\"(\", RowBox[{\"1\", \",\", \"0\"}], \")\"}], \n",
       "\n",
       " \n",
       ">                         Derivative], Rule[MultilineFunction, None]], \"(\", \n",
       "\n",
       " \n",
       ">                       RowBox[{\"x\", \",\", \"y\"}], \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                     RowBox[{SuperscriptBox[\"u\", \n",
       "\n",
       " \n",
       ">                        TagBox[RowBox[{\"(\", RowBox[{\"0\", \",\", \"1\"}], \")\"}], \n",
       "\n",
       " \n",
       ">                         Derivative], Rule[MultilineFunction, None]], \"(\", \n",
       "\n",
       " \n",
       ">                       RowBox[{\"x\", \",\", \"y\"}], \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                     RowBox[{\"v\", \"(\", RowBox[{\"x\", \",\", \"y\"}], \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                     RowBox[{SuperscriptBox[\"v\", \n",
       "\n",
       " \n",
       ">                        TagBox[RowBox[{\"(\", RowBox[{\"1\", \",\", \"0\"}], \")\"}], \n",
       "\n",
       " \n",
       ">                         Derivative], Rule[MultilineFunction, None]], \"(\", \n",
       "\n",
       " \n",
       ">                       RowBox[{\"x\", \",\", \"y\"}], \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                     RowBox[{SuperscriptBox[\"v\", \n",
       "\n",
       " \n",
       ">                        TagBox[RowBox[{\"(\", RowBox[{\"0\", \",\", \"1\"}], \")\"}], \n",
       "\n",
       " \n",
       ">                         Derivative], Rule[MultilineFunction, None]], \"(\", \n",
       "\n",
       " \n",
       ">                       RowBox[{\"x\", \",\", \"y\"}], \")\"}]}], \")\"}]}], \n",
       "\n",
       " \n",
       ">               RowBox[{\"∂\", RowBox[{\"u\", \"(\", RowBox[{\"x\", \",\", \"y\"}], \")\"}]}], \n",
       "\n",
       " \n",
       ">               Rule[MultilineFunction, None]], \"-\", \n",
       "\n",
       " \n",
       ">              RowBox[{FractionBox[RowBox[{SuperscriptBox[\"∂\", \"2\"], \n",
       "\n",
       " \n",
       ">                   RowBox[{\"L\", \"(\", \n",
       "                  RowBox[{\"x\", \",\", \"y\", \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{\"u\", \"(\", RowBox[{\"x\", \",\", \"y\"}], \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{SuperscriptBox[\"u\", \n",
       "\n",
       " \n",
       ">                          TagBox[RowBox[{\"(\", RowBox[{\"1\", \",\", \"0\"}], \")\"}], \n",
       "\n",
       " \n",
       ">                           Derivative], Rule[MultilineFunction, None]], \"(\", \n",
       "\n",
       " \n",
       ">                         RowBox[{\"x\", \",\", \"y\"}], \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{SuperscriptBox[\"u\", \n",
       "\n",
       " \n",
       ">                          TagBox[RowBox[{\"(\", RowBox[{\"0\", \",\", \"1\"}], \")\"}], \n",
       "\n",
       " \n",
       ">                           Derivative], Rule[MultilineFunction, None]], \"(\", \n",
       "\n",
       " \n",
       ">                         RowBox[{\"x\", \",\", \"y\"}], \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{\"v\", \"(\", RowBox[{\"x\", \",\", \"y\"}], \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{SuperscriptBox[\"v\", \n",
       "\n",
       " \n",
       ">                          TagBox[RowBox[{\"(\", RowBox[{\"1\", \",\", \"0\"}], \")\"}], \n",
       "\n",
       " \n",
       ">                           Derivative], Rule[MultilineFunction, None]], \"(\", \n",
       "\n",
       " \n",
       ">                         RowBox[{\"x\", \",\", \"y\"}], \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{SuperscriptBox[\"v\", \n",
       "\n",
       " \n",
       ">                          TagBox[RowBox[{\"(\", RowBox[{\"0\", \",\", \"1\"}], \")\"}], \n",
       "\n",
       " \n",
       ">                           Derivative], Rule[MultilineFunction, None]], \"(\", \n",
       "\n",
       " \n",
       ">                         RowBox[{\"x\", \",\", \"y\"}], \")\"}]}], \")\"}]}], \n",
       "\n",
       " \n",
       ">                 RowBox[{\"∂\", SuperscriptBox[RowBox[{SuperscriptBox[\"u\", \n",
       "\n",
       " \n",
       ">                       TagBox[RowBox[{\"(\", RowBox[{\"1\", \",\", \"0\"}], \")\"}], \n",
       "\n",
       " \n",
       ">                        Derivative], Rule[MultilineFunction, None]], \"(\", \n",
       "\n",
       " \n",
       ">                      RowBox[{\"x\", \",\", \"y\"}], \")\"}], \"2\"]}], \n",
       "\n",
       " \n",
       ">                 Rule[MultilineFunction, None]], \" \", \n",
       "\n",
       " \n",
       ">                FractionBox[RowBox[{SuperscriptBox[\"∂\", \"2\"], \n",
       "\n",
       " \n",
       ">                   RowBox[{\"u\", \"(\", RowBox[{\"x\", \",\", \"y\"}], \")\"}]}], \n",
       "\n",
       " \n",
       ">                 RowBox[{\"∂\", SuperscriptBox[\"x\", \"2\"]}], \n",
       "\n",
       " \n",
       ">                 Rule[MultilineFunction, None]]}], \"-\", \n",
       "\n",
       " \n",
       ">              RowBox[{FractionBox[RowBox[{SuperscriptBox[\"∂\", \"2\"], \n",
       "\n",
       " \n",
       ">                   RowBox[{\"L\", \"(\", \n",
       "                  RowBox[{\"x\", \",\", \"y\", \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{\"u\", \"(\", RowBox[{\"x\", \",\", \"y\"}], \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{SuperscriptBox[\"u\", \n",
       "\n",
       " \n",
       ">                          TagBox[RowBox[{\"(\", RowBox[{\"1\", \",\", \"0\"}], \")\"}], \n",
       "\n",
       " \n",
       ">                           Derivative], Rule[MultilineFunction, None]], \"(\", \n",
       "\n",
       " \n",
       ">                         RowBox[{\"x\", \",\", \"y\"}], \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{SuperscriptBox[\"u\", \n",
       "\n",
       " \n",
       ">                          TagBox[RowBox[{\"(\", RowBox[{\"0\", \",\", \"1\"}], \")\"}], \n",
       "\n",
       " \n",
       ">                           Derivative], Rule[MultilineFunction, None]], \"(\", \n",
       "\n",
       " \n",
       ">                         RowBox[{\"x\", \",\", \"y\"}], \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{\"v\", \"(\", RowBox[{\"x\", \",\", \"y\"}], \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{SuperscriptBox[\"v\", \n",
       "\n",
       " \n",
       ">                          TagBox[RowBox[{\"(\", RowBox[{\"1\", \",\", \"0\"}], \")\"}], \n",
       "\n",
       " \n",
       ">                           Derivative], Rule[MultilineFunction, None]], \"(\", \n",
       "\n",
       " \n",
       ">                         RowBox[{\"x\", \",\", \"y\"}], \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{SuperscriptBox[\"v\", \n",
       "\n",
       " \n",
       ">                          TagBox[RowBox[{\"(\", RowBox[{\"0\", \",\", \"1\"}], \")\"}], \n",
       "\n",
       " \n",
       ">                           Derivative], Rule[MultilineFunction, None]], \"(\", \n",
       "\n",
       " \n",
       ">                         RowBox[{\"x\", \",\", \"y\"}], \")\"}]}], \")\"}]}], \n",
       "\n",
       " \n",
       ">                 RowBox[{\"∂\", SuperscriptBox[RowBox[{SuperscriptBox[\"u\", \n",
       "\n",
       " \n",
       ">                       TagBox[RowBox[{\"(\", RowBox[{\"0\", \",\", \"1\"}], \")\"}], \n",
       "\n",
       " \n",
       ">                        Derivative], Rule[MultilineFunction, None]], \"(\", \n",
       "\n",
       " \n",
       ">                      RowBox[{\"x\", \",\", \"y\"}], \")\"}], \"2\"]}], \n",
       "\n",
       " \n",
       ">                 Rule[MultilineFunction, None]], \" \", \n",
       "\n",
       " \n",
       ">                FractionBox[RowBox[{SuperscriptBox[\"∂\", \"2\"], \n",
       "\n",
       " \n",
       ">                   RowBox[{\"u\", \"(\", RowBox[{\"x\", \",\", \"y\"}], \")\"}]}], \n",
       "\n",
       " \n",
       ">                 RowBox[{\"∂\", SuperscriptBox[\"y\", \"2\"]}], \n",
       "\n",
       " \n",
       ">                 Rule[MultilineFunction, None]]}], \"-\", \n",
       "\n",
       " \n",
       ">              FractionBox[RowBox[{SuperscriptBox[\"∂\", \"2\"], \n",
       "\n",
       " \n",
       ">                 RowBox[{\"L\", \"(\", RowBox[{\"x\", \",\", \"y\", \",\", \n",
       "\n",
       " \n",
       ">                     RowBox[{\"u\", \"(\", RowBox[{\"x\", \",\", \"y\"}], \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                     RowBox[{SuperscriptBox[\"u\", \n",
       "\n",
       " \n",
       ">                        TagBox[RowBox[{\"(\", RowBox[{\"1\", \",\", \"0\"}], \")\"}], \n",
       "\n",
       " \n",
       ">                         Derivative], Rule[MultilineFunction, None]], \"(\", \n",
       "\n",
       " \n",
       ">                       RowBox[{\"x\", \",\", \"y\"}], \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                     RowBox[{SuperscriptBox[\"u\", \n",
       "\n",
       " \n",
       ">                        TagBox[RowBox[{\"(\", RowBox[{\"0\", \",\", \"1\"}], \")\"}], \n",
       "\n",
       " \n",
       ">                         Derivative], Rule[MultilineFunction, None]], \"(\", \n",
       "\n",
       " \n",
       ">                       RowBox[{\"x\", \",\", \"y\"}], \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                     RowBox[{\"v\", \"(\", RowBox[{\"x\", \",\", \"y\"}], \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                     RowBox[{SuperscriptBox[\"v\", \n",
       "\n",
       " \n",
       ">                        TagBox[RowBox[{\"(\", RowBox[{\"1\", \",\", \"0\"}], \")\"}], \n",
       "\n",
       " \n",
       ">                         Derivative], Rule[MultilineFunction, None]], \"(\", \n",
       "\n",
       " \n",
       ">                       RowBox[{\"x\", \",\", \"y\"}], \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                     RowBox[{SuperscriptBox[\"v\", \n",
       "\n",
       " \n",
       ">                        TagBox[RowBox[{\"(\", RowBox[{\"0\", \",\", \"1\"}], \")\"}], \n",
       "\n",
       " \n",
       ">                         Derivative], Rule[MultilineFunction, None]], \"(\", \n",
       "\n",
       " \n",
       ">                       RowBox[{\"x\", \",\", \"y\"}], \")\"}]}], \")\"}]}], \n",
       "\n",
       " \n",
       ">               RowBox[{RowBox[{\"∂\", \"x\"}], \" \", \n",
       "\n",
       " \n",
       ">                 RowBox[{\"∂\", RowBox[{SuperscriptBox[\"u\", \n",
       "\n",
       " \n",
       ">                      TagBox[RowBox[{\"(\", RowBox[{\"1\", \",\", \"0\"}], \")\"}], \n",
       "\n",
       " \n",
       ">                       Derivative], Rule[MultilineFunction, None]], \"(\", \n",
       "\n",
       " \n",
       ">                     RowBox[{\"x\", \",\", \"y\"}], \")\"}]}]}], \n",
       "\n",
       " \n",
       ">               Rule[MultilineFunction, None]], \"-\", \n",
       "\n",
       " \n",
       ">              FractionBox[RowBox[{SuperscriptBox[\"∂\", \"2\"], \n",
       "\n",
       " \n",
       ">                 RowBox[{\"L\", \"(\", RowBox[{\"x\", \",\", \"y\", \",\", \n",
       "\n",
       " \n",
       ">                     RowBox[{\"u\", \"(\", RowBox[{\"x\", \",\", \"y\"}], \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                     RowBox[{SuperscriptBox[\"u\", \n",
       "\n",
       " \n",
       ">                        TagBox[RowBox[{\"(\", RowBox[{\"1\", \",\", \"0\"}], \")\"}], \n",
       "\n",
       " \n",
       ">                         Derivative], Rule[MultilineFunction, None]], \"(\", \n",
       "\n",
       " \n",
       ">                       RowBox[{\"x\", \",\", \"y\"}], \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                     RowBox[{SuperscriptBox[\"u\", \n",
       "\n",
       " \n",
       ">                        TagBox[RowBox[{\"(\", RowBox[{\"0\", \",\", \"1\"}], \")\"}], \n",
       "\n",
       " \n",
       ">                         Derivative], Rule[MultilineFunction, None]], \"(\", \n",
       "\n",
       " \n",
       ">                       RowBox[{\"x\", \",\", \"y\"}], \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                     RowBox[{\"v\", \"(\", RowBox[{\"x\", \",\", \"y\"}], \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                     RowBox[{SuperscriptBox[\"v\", \n",
       "\n",
       " \n",
       ">                        TagBox[RowBox[{\"(\", RowBox[{\"1\", \",\", \"0\"}], \")\"}], \n",
       "\n",
       " \n",
       ">                         Derivative], Rule[MultilineFunction, None]], \"(\", \n",
       "\n",
       " \n",
       ">                       RowBox[{\"x\", \",\", \"y\"}], \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                     RowBox[{SuperscriptBox[\"v\", \n",
       "\n",
       " \n",
       ">                        TagBox[RowBox[{\"(\", RowBox[{\"0\", \",\", \"1\"}], \")\"}], \n",
       "\n",
       " \n",
       ">                         Derivative], Rule[MultilineFunction, None]], \"(\", \n",
       "\n",
       " \n",
       ">                       RowBox[{\"x\", \",\", \"y\"}], \")\"}]}], \")\"}]}], \n",
       "\n",
       " \n",
       ">               RowBox[{RowBox[{\"∂\", \"y\"}], \" \", \n",
       "\n",
       " \n",
       ">                 RowBox[{\"∂\", RowBox[{SuperscriptBox[\"u\", \n",
       "\n",
       " \n",
       ">                      TagBox[RowBox[{\"(\", RowBox[{\"0\", \",\", \"1\"}], \")\"}], \n",
       "\n",
       " \n",
       ">                       Derivative], Rule[MultilineFunction, None]], \"(\", \n",
       "\n",
       " \n",
       ">                     RowBox[{\"x\", \",\", \"y\"}], \")\"}]}]}], \n",
       "\n",
       " \n",
       ">               Rule[MultilineFunction, None]], \"-\", \n",
       "\n",
       " \n",
       ">              RowBox[{FractionBox[RowBox[{\"∂\", \n",
       "\n",
       " \n",
       ">                   RowBox[{\"u\", \"(\", RowBox[{\"x\", \",\", \"y\"}], \")\"}]}], \n",
       "\n",
       " \n",
       ">                 RowBox[{\"∂\", \"y\"}], Rule[MultilineFunction, None]], \" \", \n",
       "\n",
       " \n",
       ">                FractionBox[RowBox[{SuperscriptBox[\"∂\", \"2\"], \n",
       "\n",
       " \n",
       ">                   RowBox[{\"L\", \"(\", \n",
       "                  RowBox[{\"x\", \",\", \"y\", \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{\"u\", \"(\", RowBox[{\"x\", \",\", \"y\"}], \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{SuperscriptBox[\"u\", \n",
       "\n",
       " \n",
       ">                          TagBox[RowBox[{\"(\", RowBox[{\"1\", \",\", \"0\"}], \")\"}], \n",
       "\n",
       " \n",
       ">                           Derivative], Rule[MultilineFunction, None]], \"(\", \n",
       "\n",
       " \n",
       ">                         RowBox[{\"x\", \",\", \"y\"}], \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{SuperscriptBox[\"u\", \n",
       "\n",
       " \n",
       ">                          TagBox[RowBox[{\"(\", RowBox[{\"0\", \",\", \"1\"}], \")\"}], \n",
       "\n",
       " \n",
       ">                           Derivative], Rule[MultilineFunction, None]], \"(\", \n",
       "\n",
       " \n",
       ">                         RowBox[{\"x\", \",\", \"y\"}], \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{\"v\", \"(\", RowBox[{\"x\", \",\", \"y\"}], \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{SuperscriptBox[\"v\", \n",
       "\n",
       " \n",
       ">                          TagBox[RowBox[{\"(\", RowBox[{\"1\", \",\", \"0\"}], \")\"}], \n",
       "\n",
       " \n",
       ">                           Derivative], Rule[MultilineFunction, None]], \"(\", \n",
       "\n",
       " \n",
       ">                         RowBox[{\"x\", \",\", \"y\"}], \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{SuperscriptBox[\"v\", \n",
       "\n",
       " \n",
       ">                          TagBox[RowBox[{\"(\", RowBox[{\"0\", \",\", \"1\"}], \")\"}], \n",
       "\n",
       " \n",
       ">                           Derivative], Rule[MultilineFunction, None]], \"(\", \n",
       "\n",
       " \n",
       ">                         RowBox[{\"x\", \",\", \"y\"}], \")\"}]}], \")\"}]}], \n",
       "\n",
       " \n",
       ">                 RowBox[{RowBox[{\"∂\", \n",
       "\n",
       " \n",
       ">                     RowBox[{\"u\", \"(\", RowBox[{\"x\", \",\", \"y\"}], \")\"}]}], \" \", \n",
       "\n",
       " \n",
       ">                   RowBox[{\"∂\", RowBox[{SuperscriptBox[\"u\", \n",
       "\n",
       " \n",
       ">                        TagBox[RowBox[{\"(\", RowBox[{\"0\", \",\", \"1\"}], \")\"}], \n",
       "\n",
       " \n",
       ">                         Derivative], Rule[MultilineFunction, None]], \"(\", \n",
       "\n",
       " \n",
       ">                       RowBox[{\"x\", \",\", \"y\"}], \")\"}]}]}], \n",
       "\n",
       " \n",
       ">                 Rule[MultilineFunction, None]]}], \"-\", \n",
       "\n",
       " \n",
       ">              RowBox[{FractionBox[RowBox[{\"∂\", \n",
       "\n",
       " \n",
       ">                   RowBox[{\"u\", \"(\", RowBox[{\"x\", \",\", \"y\"}], \")\"}]}], \n",
       "\n",
       " \n",
       ">                 RowBox[{\"∂\", \"x\"}], Rule[MultilineFunction, None]], \" \", \n",
       "\n",
       " \n",
       ">                FractionBox[RowBox[{SuperscriptBox[\"∂\", \"2\"], \n",
       "\n",
       " \n",
       ">                   RowBox[{\"L\", \"(\", \n",
       "                  RowBox[{\"x\", \",\", \"y\", \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{\"u\", \"(\", RowBox[{\"x\", \",\", \"y\"}], \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{SuperscriptBox[\"u\", \n",
       "\n",
       " \n",
       ">                          TagBox[RowBox[{\"(\", RowBox[{\"1\", \",\", \"0\"}], \")\"}], \n",
       "\n",
       " \n",
       ">                           Derivative], Rule[MultilineFunction, None]], \"(\", \n",
       "\n",
       " \n",
       ">                         RowBox[{\"x\", \",\", \"y\"}], \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{SuperscriptBox[\"u\", \n",
       "\n",
       " \n",
       ">                          TagBox[RowBox[{\"(\", RowBox[{\"0\", \",\", \"1\"}], \")\"}], \n",
       "\n",
       " \n",
       ">                           Derivative], Rule[MultilineFunction, None]], \"(\", \n",
       "\n",
       " \n",
       ">                         RowBox[{\"x\", \",\", \"y\"}], \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{\"v\", \"(\", RowBox[{\"x\", \",\", \"y\"}], \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{SuperscriptBox[\"v\", \n",
       "\n",
       " \n",
       ">                          TagBox[RowBox[{\"(\", RowBox[{\"1\", \",\", \"0\"}], \")\"}], \n",
       "\n",
       " \n",
       ">                           Derivative], Rule[MultilineFunction, None]], \"(\", \n",
       "\n",
       " \n",
       ">                         RowBox[{\"x\", \",\", \"y\"}], \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{SuperscriptBox[\"v\", \n",
       "\n",
       " \n",
       ">                          TagBox[RowBox[{\"(\", RowBox[{\"0\", \",\", \"1\"}], \")\"}], \n",
       "\n",
       " \n",
       ">                           Derivative], Rule[MultilineFunction, None]], \"(\", \n",
       "\n",
       " \n",
       ">                         RowBox[{\"x\", \",\", \"y\"}], \")\"}]}], \")\"}]}], \n",
       "\n",
       " \n",
       ">                 RowBox[{RowBox[{\"∂\", \n",
       "\n",
       " \n",
       ">                     RowBox[{\"u\", \"(\", RowBox[{\"x\", \",\", \"y\"}], \")\"}]}], \" \", \n",
       "\n",
       " \n",
       ">                   RowBox[{\"∂\", RowBox[{SuperscriptBox[\"u\", \n",
       "\n",
       " \n",
       ">                        TagBox[RowBox[{\"(\", RowBox[{\"1\", \",\", \"0\"}], \")\"}], \n",
       "\n",
       " \n",
       ">                         Derivative], Rule[MultilineFunction, None]], \"(\", \n",
       "\n",
       " \n",
       ">                       RowBox[{\"x\", \",\", \"y\"}], \")\"}]}]}], \n",
       "\n",
       " \n",
       ">                 Rule[MultilineFunction, None]]}], \"-\", \n",
       "\n",
       " \n",
       ">              RowBox[{FractionBox[RowBox[{\"∂\", \n",
       "\n",
       " \n",
       ">                   RowBox[{\"v\", \"(\", RowBox[{\"x\", \",\", \"y\"}], \")\"}]}], \n",
       "\n",
       " \n",
       ">                 RowBox[{\"∂\", \"y\"}], Rule[MultilineFunction, None]], \" \", \n",
       "\n",
       " \n",
       ">                FractionBox[RowBox[{SuperscriptBox[\"∂\", \"2\"], \n",
       "\n",
       " \n",
       ">                   RowBox[{\"L\", \"(\", \n",
       "                  RowBox[{\"x\", \",\", \"y\", \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{\"u\", \"(\", RowBox[{\"x\", \",\", \"y\"}], \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{SuperscriptBox[\"u\", \n",
       "\n",
       " \n",
       ">                          TagBox[RowBox[{\"(\", RowBox[{\"1\", \",\", \"0\"}], \")\"}], \n",
       "\n",
       " \n",
       ">                           Derivative], Rule[MultilineFunction, None]], \"(\", \n",
       "\n",
       " \n",
       ">                         RowBox[{\"x\", \",\", \"y\"}], \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{SuperscriptBox[\"u\", \n",
       "\n",
       " \n",
       ">                          TagBox[RowBox[{\"(\", RowBox[{\"0\", \",\", \"1\"}], \")\"}], \n",
       "\n",
       " \n",
       ">                           Derivative], Rule[MultilineFunction, None]], \"(\", \n",
       "\n",
       " \n",
       ">                         RowBox[{\"x\", \",\", \"y\"}], \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{\"v\", \"(\", RowBox[{\"x\", \",\", \"y\"}], \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{SuperscriptBox[\"v\", \n",
       "\n",
       " \n",
       ">                          TagBox[RowBox[{\"(\", RowBox[{\"1\", \",\", \"0\"}], \")\"}], \n",
       "\n",
       " \n",
       ">                           Derivative], Rule[MultilineFunction, None]], \"(\", \n",
       "\n",
       " \n",
       ">                         RowBox[{\"x\", \",\", \"y\"}], \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{SuperscriptBox[\"v\", \n",
       "\n",
       " \n",
       ">                          TagBox[RowBox[{\"(\", RowBox[{\"0\", \",\", \"1\"}], \")\"}], \n",
       "\n",
       " \n",
       ">                           Derivative], Rule[MultilineFunction, None]], \"(\", \n",
       "\n",
       " \n",
       ">                         RowBox[{\"x\", \",\", \"y\"}], \")\"}]}], \")\"}]}], \n",
       "\n",
       " \n",
       ">                 RowBox[{RowBox[{\"∂\", \n",
       "                  RowBox[{SuperscriptBox[\"u\", \n",
       "\n",
       " \n",
       ">                        TagBox[RowBox[{\"(\", RowBox[{\"0\", \",\", \"1\"}], \")\"}], \n",
       "\n",
       " \n",
       ">                         Derivative], Rule[MultilineFunction, None]], \"(\", \n",
       "\n",
       " \n",
       ">                       RowBox[{\"x\", \",\", \"y\"}], \")\"}]}], \" \", \n",
       "\n",
       " \n",
       ">                   RowBox[{\"∂\", RowBox[{\"v\", \"(\", RowBox[{\"x\", \",\", \"y\"}], \")\"}]}]}], \n",
       "\n",
       " \n",
       ">                 Rule[MultilineFunction, None]]}], \"-\", \n",
       "\n",
       " \n",
       ">              RowBox[{FractionBox[RowBox[{SuperscriptBox[\"∂\", \"2\"], \n",
       "\n",
       " \n",
       ">                   RowBox[{\"v\", \"(\", RowBox[{\"x\", \",\", \"y\"}], \")\"}]}], \n",
       "\n",
       " \n",
       ">                 RowBox[{\"∂\", SuperscriptBox[\"y\", \"2\"]}], \n",
       "\n",
       " \n",
       ">                 Rule[MultilineFunction, None]], \" \", \n",
       "\n",
       " \n",
       ">                FractionBox[RowBox[{SuperscriptBox[\"∂\", \"2\"], \n",
       "\n",
       " \n",
       ">                   RowBox[{\"L\", \"(\", \n",
       "                  RowBox[{\"x\", \",\", \"y\", \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{\"u\", \"(\", RowBox[{\"x\", \",\", \"y\"}], \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{SuperscriptBox[\"u\", \n",
       "\n",
       " \n",
       ">                          TagBox[RowBox[{\"(\", RowBox[{\"1\", \",\", \"0\"}], \")\"}], \n",
       "\n",
       " \n",
       ">                           Derivative], Rule[MultilineFunction, None]], \"(\", \n",
       "\n",
       " \n",
       ">                         RowBox[{\"x\", \",\", \"y\"}], \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{SuperscriptBox[\"u\", \n",
       "\n",
       " \n",
       ">                          TagBox[RowBox[{\"(\", RowBox[{\"0\", \",\", \"1\"}], \")\"}], \n",
       "\n",
       " \n",
       ">                           Derivative], Rule[MultilineFunction, None]], \"(\", \n",
       "\n",
       " \n",
       ">                         RowBox[{\"x\", \",\", \"y\"}], \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{\"v\", \"(\", RowBox[{\"x\", \",\", \"y\"}], \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{SuperscriptBox[\"v\", \n",
       "\n",
       " \n",
       ">                          TagBox[RowBox[{\"(\", RowBox[{\"1\", \",\", \"0\"}], \")\"}], \n",
       "\n",
       " \n",
       ">                           Derivative], Rule[MultilineFunction, None]], \"(\", \n",
       "\n",
       " \n",
       ">                         RowBox[{\"x\", \",\", \"y\"}], \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{SuperscriptBox[\"v\", \n",
       "\n",
       " \n",
       ">                          TagBox[RowBox[{\"(\", RowBox[{\"0\", \",\", \"1\"}], \")\"}], \n",
       "\n",
       " \n",
       ">                           Derivative], Rule[MultilineFunction, None]], \"(\", \n",
       "\n",
       " \n",
       ">                         RowBox[{\"x\", \",\", \"y\"}], \")\"}]}], \")\"}]}], \n",
       "\n",
       " \n",
       ">                 RowBox[{RowBox[{\"∂\", \n",
       "                  RowBox[{SuperscriptBox[\"u\", \n",
       "\n",
       " \n",
       ">                        TagBox[RowBox[{\"(\", RowBox[{\"0\", \",\", \"1\"}], \")\"}], \n",
       "\n",
       " \n",
       ">                         Derivative], Rule[MultilineFunction, None]], \"(\", \n",
       "\n",
       " \n",
       ">                       RowBox[{\"x\", \",\", \"y\"}], \")\"}]}], \" \", \n",
       "\n",
       " \n",
       ">                   RowBox[{\"∂\", RowBox[{SuperscriptBox[\"v\", \n",
       "\n",
       " \n",
       ">                        TagBox[RowBox[{\"(\", RowBox[{\"0\", \",\", \"1\"}], \")\"}], \n",
       "\n",
       " \n",
       ">                         Derivative], Rule[MultilineFunction, None]], \"(\", \n",
       "\n",
       " \n",
       ">                       RowBox[{\"x\", \",\", \"y\"}], \")\"}]}]}], \n",
       "\n",
       " \n",
       ">                 Rule[MultilineFunction, None]]}], \"-\", \n",
       "\n",
       " \n",
       ">              RowBox[{FractionBox[RowBox[{\"∂\", \n",
       "\n",
       " \n",
       ">                   RowBox[{\"v\", \"(\", RowBox[{\"x\", \",\", \"y\"}], \")\"}]}], \n",
       "\n",
       " \n",
       ">                 RowBox[{\"∂\", \"x\"}], Rule[MultilineFunction, None]], \" \", \n",
       "\n",
       " \n",
       ">                FractionBox[RowBox[{SuperscriptBox[\"∂\", \"2\"], \n",
       "\n",
       " \n",
       ">                   RowBox[{\"L\", \"(\", \n",
       "                  RowBox[{\"x\", \",\", \"y\", \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{\"u\", \"(\", RowBox[{\"x\", \",\", \"y\"}], \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{SuperscriptBox[\"u\", \n",
       "\n",
       " \n",
       ">                          TagBox[RowBox[{\"(\", RowBox[{\"1\", \",\", \"0\"}], \")\"}], \n",
       "\n",
       " \n",
       ">                           Derivative], Rule[MultilineFunction, None]], \"(\", \n",
       "\n",
       " \n",
       ">                         RowBox[{\"x\", \",\", \"y\"}], \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{SuperscriptBox[\"u\", \n",
       "\n",
       " \n",
       ">                          TagBox[RowBox[{\"(\", RowBox[{\"0\", \",\", \"1\"}], \")\"}], \n",
       "\n",
       " \n",
       ">                           Derivative], Rule[MultilineFunction, None]], \"(\", \n",
       "\n",
       " \n",
       ">                         RowBox[{\"x\", \",\", \"y\"}], \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{\"v\", \"(\", RowBox[{\"x\", \",\", \"y\"}], \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{SuperscriptBox[\"v\", \n",
       "\n",
       " \n",
       ">                          TagBox[RowBox[{\"(\", RowBox[{\"1\", \",\", \"0\"}], \")\"}], \n",
       "\n",
       " \n",
       ">                           Derivative], Rule[MultilineFunction, None]], \"(\", \n",
       "\n",
       " \n",
       ">                         RowBox[{\"x\", \",\", \"y\"}], \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{SuperscriptBox[\"v\", \n",
       "\n",
       " \n",
       ">                          TagBox[RowBox[{\"(\", RowBox[{\"0\", \",\", \"1\"}], \")\"}], \n",
       "\n",
       " \n",
       ">                           Derivative], Rule[MultilineFunction, None]], \"(\", \n",
       "\n",
       " \n",
       ">                         RowBox[{\"x\", \",\", \"y\"}], \")\"}]}], \")\"}]}], \n",
       "\n",
       " \n",
       ">                 RowBox[{RowBox[{\"∂\", \n",
       "                  RowBox[{SuperscriptBox[\"u\", \n",
       "\n",
       " \n",
       ">                        TagBox[RowBox[{\"(\", RowBox[{\"1\", \",\", \"0\"}], \")\"}], \n",
       "\n",
       " \n",
       ">                         Derivative], Rule[MultilineFunction, None]], \"(\", \n",
       "\n",
       " \n",
       ">                       RowBox[{\"x\", \",\", \"y\"}], \")\"}]}], \" \", \n",
       "\n",
       " \n",
       ">                   RowBox[{\"∂\", RowBox[{\"v\", \"(\", RowBox[{\"x\", \",\", \"y\"}], \")\"}]}]}], \n",
       "\n",
       " \n",
       ">                 Rule[MultilineFunction, None]]}], \"-\", \n",
       "\n",
       " \n",
       ">              RowBox[{FractionBox[RowBox[{SuperscriptBox[\"∂\", \"2\"], \n",
       "\n",
       " \n",
       ">                   RowBox[{\"v\", \"(\", RowBox[{\"x\", \",\", \"y\"}], \")\"}]}], \n",
       "\n",
       " \n",
       ">                 RowBox[{\"∂\", SuperscriptBox[\"x\", \"2\"]}], \n",
       "\n",
       " \n",
       ">                 Rule[MultilineFunction, None]], \" \", \n",
       "\n",
       " \n",
       ">                FractionBox[RowBox[{SuperscriptBox[\"∂\", \"2\"], \n",
       "\n",
       " \n",
       ">                   RowBox[{\"L\", \"(\", \n",
       "                  RowBox[{\"x\", \",\", \"y\", \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{\"u\", \"(\", RowBox[{\"x\", \",\", \"y\"}], \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{SuperscriptBox[\"u\", \n",
       "\n",
       " \n",
       ">                          TagBox[RowBox[{\"(\", RowBox[{\"1\", \",\", \"0\"}], \")\"}], \n",
       "\n",
       " \n",
       ">                           Derivative], Rule[MultilineFunction, None]], \"(\", \n",
       "\n",
       " \n",
       ">                         RowBox[{\"x\", \",\", \"y\"}], \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{SuperscriptBox[\"u\", \n",
       "\n",
       " \n",
       ">                          TagBox[RowBox[{\"(\", RowBox[{\"0\", \",\", \"1\"}], \")\"}], \n",
       "\n",
       " \n",
       ">                           Derivative], Rule[MultilineFunction, None]], \"(\", \n",
       "\n",
       " \n",
       ">                         RowBox[{\"x\", \",\", \"y\"}], \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{\"v\", \"(\", RowBox[{\"x\", \",\", \"y\"}], \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{SuperscriptBox[\"v\", \n",
       "\n",
       " \n",
       ">                          TagBox[RowBox[{\"(\", RowBox[{\"1\", \",\", \"0\"}], \")\"}], \n",
       "\n",
       " \n",
       ">                           Derivative], Rule[MultilineFunction, None]], \"(\", \n",
       "\n",
       " \n",
       ">                         RowBox[{\"x\", \",\", \"y\"}], \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{SuperscriptBox[\"v\", \n",
       "\n",
       " \n",
       ">                          TagBox[RowBox[{\"(\", RowBox[{\"0\", \",\", \"1\"}], \")\"}], \n",
       "\n",
       " \n",
       ">                           Derivative], Rule[MultilineFunction, None]], \"(\", \n",
       "\n",
       " \n",
       ">                         RowBox[{\"x\", \",\", \"y\"}], \")\"}]}], \")\"}]}], \n",
       "\n",
       " \n",
       ">                 RowBox[{RowBox[{\"∂\", \n",
       "                  RowBox[{SuperscriptBox[\"u\", \n",
       "\n",
       " \n",
       ">                        TagBox[RowBox[{\"(\", RowBox[{\"1\", \",\", \"0\"}], \")\"}], \n",
       "\n",
       " \n",
       ">                         Derivative], Rule[MultilineFunction, None]], \"(\", \n",
       "\n",
       " \n",
       ">                       RowBox[{\"x\", \",\", \"y\"}], \")\"}]}], \" \", \n",
       "\n",
       " \n",
       ">                   RowBox[{\"∂\", RowBox[{SuperscriptBox[\"v\", \n",
       "\n",
       " \n",
       ">                        TagBox[RowBox[{\"(\", RowBox[{\"1\", \",\", \"0\"}], \")\"}], \n",
       "\n",
       " \n",
       ">                         Derivative], Rule[MultilineFunction, None]], \"(\", \n",
       "\n",
       " \n",
       ">                       RowBox[{\"x\", \",\", \"y\"}], \")\"}]}]}], \n",
       "\n",
       " \n",
       ">                 Rule[MultilineFunction, None]]}], \"-\", \n",
       "\n",
       " \n",
       ">              RowBox[{\"2\", \" \", FractionBox[RowBox[{SuperscriptBox[\"∂\", \"2\"], \n",
       "\n",
       " \n",
       ">                   RowBox[{\"L\", \"(\", \n",
       "                  RowBox[{\"x\", \",\", \"y\", \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{\"u\", \"(\", RowBox[{\"x\", \",\", \"y\"}], \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{SuperscriptBox[\"u\", \n",
       "\n",
       " \n",
       ">                          TagBox[RowBox[{\"(\", RowBox[{\"1\", \",\", \"0\"}], \")\"}], \n",
       "\n",
       " \n",
       ">                           Derivative], Rule[MultilineFunction, None]], \"(\", \n",
       "\n",
       " \n",
       ">                         RowBox[{\"x\", \",\", \"y\"}], \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{SuperscriptBox[\"u\", \n",
       "\n",
       " \n",
       ">                          TagBox[RowBox[{\"(\", RowBox[{\"0\", \",\", \"1\"}], \")\"}], \n",
       "\n",
       " \n",
       ">                           Derivative], Rule[MultilineFunction, None]], \"(\", \n",
       "\n",
       " \n",
       ">                         RowBox[{\"x\", \",\", \"y\"}], \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{\"v\", \"(\", RowBox[{\"x\", \",\", \"y\"}], \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{SuperscriptBox[\"v\", \n",
       "\n",
       " \n",
       ">                          TagBox[RowBox[{\"(\", RowBox[{\"1\", \",\", \"0\"}], \")\"}], \n",
       "\n",
       " \n",
       ">                           Derivative], Rule[MultilineFunction, None]], \"(\", \n",
       "\n",
       " \n",
       ">                         RowBox[{\"x\", \",\", \"y\"}], \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{SuperscriptBox[\"v\", \n",
       "\n",
       " \n",
       ">                          TagBox[RowBox[{\"(\", RowBox[{\"0\", \",\", \"1\"}], \")\"}], \n",
       "\n",
       " \n",
       ">                           Derivative], Rule[MultilineFunction, None]], \"(\", \n",
       "\n",
       " \n",
       ">                         RowBox[{\"x\", \",\", \"y\"}], \")\"}]}], \")\"}]}], \n",
       "\n",
       " \n",
       ">                 RowBox[{RowBox[{\"∂\", \n",
       "                  RowBox[{SuperscriptBox[\"u\", \n",
       "\n",
       " \n",
       ">                        TagBox[RowBox[{\"(\", RowBox[{\"1\", \",\", \"0\"}], \")\"}], \n",
       "\n",
       " \n",
       ">                         Derivative], Rule[MultilineFunction, None]], \"(\", \n",
       "\n",
       " \n",
       ">                       RowBox[{\"x\", \",\", \"y\"}], \")\"}]}], \" \", \n",
       "\n",
       " \n",
       ">                   RowBox[{\"∂\", RowBox[{SuperscriptBox[\"u\", \n",
       "\n",
       " \n",
       ">                        TagBox[RowBox[{\"(\", RowBox[{\"0\", \",\", \"1\"}], \")\"}], \n",
       "\n",
       " \n",
       ">                         Derivative], Rule[MultilineFunction, None]], \"(\", \n",
       "\n",
       " \n",
       ">                       RowBox[{\"x\", \",\", \"y\"}], \")\"}]}]}], \n",
       "\n",
       " \n",
       ">                 Rule[MultilineFunction, None]], \" \", \n",
       "\n",
       " \n",
       ">                FractionBox[RowBox[{SuperscriptBox[\"∂\", \"2\"], \n",
       "\n",
       " \n",
       ">                   RowBox[{\"u\", \"(\", RowBox[{\"x\", \",\", \"y\"}], \")\"}]}], \n",
       "\n",
       " \n",
       ">                 RowBox[{RowBox[{\"∂\", \"x\"}], \" \", RowBox[{\"∂\", \"y\"}]}], \n",
       "\n",
       " \n",
       ">                 Rule[MultilineFunction, None]]}], \"-\", \n",
       "\n",
       " \n",
       ">              RowBox[{RowBox[{\"(\", RowBox[{FractionBox[RowBox[{SuperscriptBox[\n",
       "\n",
       " \n",
       ">                        \"∂\", \"2\"], RowBox[{\"L\", \"(\", \n",
       "\n",
       " \n",
       ">                         RowBox[{\"x\", \",\", \"y\", \",\", \n",
       "\n",
       " \n",
       ">                           RowBox[{\"u\", \"(\", RowBox[{\"x\", \",\", \"y\"}], \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                           RowBox[{SuperscriptBox[\"u\", \n",
       "\n",
       " \n",
       ">                             TagBox[RowBox[{\"(\", RowBox[{\"1\", \",\", \"0\"}], \n",
       "\n",
       " \n",
       ">                            \")\"}], Derivative], Rule[MultilineFunction, None]], \n",
       "\n",
       " \n",
       ">                             \"(\", RowBox[{\"x\", \",\", \"y\"}], \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                           RowBox[{SuperscriptBox[\"u\", \n",
       "\n",
       " \n",
       ">                             TagBox[RowBox[{\"(\", RowBox[{\"0\", \",\", \"1\"}], \n",
       "\n",
       " \n",
       ">                            \")\"}], Derivative], Rule[MultilineFunction, None]], \n",
       "\n",
       " \n",
       ">                             \"(\", RowBox[{\"x\", \",\", \"y\"}], \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                           RowBox[{\"v\", \"(\", RowBox[{\"x\", \",\", \"y\"}], \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                           RowBox[{SuperscriptBox[\"v\", \n",
       "\n",
       " \n",
       ">                             TagBox[RowBox[{\"(\", RowBox[{\"1\", \",\", \"0\"}], \n",
       "\n",
       " \n",
       ">                            \")\"}], Derivative], Rule[MultilineFunction, None]], \n",
       "\n",
       " \n",
       ">                             \"(\", RowBox[{\"x\", \",\", \"y\"}], \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                           RowBox[{SuperscriptBox[\"v\", \n",
       "\n",
       " \n",
       ">                              TagBox[RowBox[{\"(\", RowBox[{\"0\", \",\", \"1\"}], \n",
       "\n",
       " \n",
       ">                             \")\"}], Derivative], Rule[MultilineFunction, None]], \n",
       "\n",
       " \n",
       ">                             \"(\", RowBox[{\"x\", \",\", \"y\"}], \")\"}]}], \")\"}]}], \n",
       "\n",
       " \n",
       ">                     RowBox[{RowBox[{\"∂\", \n",
       "\n",
       " \n",
       ">                         RowBox[{SuperscriptBox[\"u\", \n",
       "\n",
       " \n",
       ">                            TagBox[RowBox[{\"(\", RowBox[{\"0\", \",\", \"1\"}], \")\"}], \n",
       "\n",
       " \n",
       ">                             Derivative], Rule[MultilineFunction, None]], \"(\", \n",
       "\n",
       " \n",
       ">                           RowBox[{\"x\", \",\", \"y\"}], \")\"}]}], \" \", \n",
       "\n",
       " \n",
       ">                       RowBox[{\"∂\", \n",
       "                      RowBox[{SuperscriptBox[\"v\", \n",
       "\n",
       " \n",
       ">                            TagBox[RowBox[{\"(\", RowBox[{\"1\", \",\", \"0\"}], \")\"}], \n",
       "\n",
       " \n",
       ">                             Derivative], Rule[MultilineFunction, None]], \"(\", \n",
       "\n",
       " \n",
       ">                           RowBox[{\"x\", \",\", \"y\"}], \")\"}]}]}], \n",
       "\n",
       " \n",
       ">                     Rule[MultilineFunction, None]], \"+\", \n",
       "\n",
       " \n",
       ">                    FractionBox[RowBox[{SuperscriptBox[\"∂\", \"2\"], \n",
       "\n",
       " \n",
       ">                       RowBox[{\"L\", \"(\", \n",
       "\n",
       " \n",
       ">                         RowBox[{\"x\", \",\", \"y\", \",\", \n",
       "\n",
       " \n",
       ">                           RowBox[{\"u\", \"(\", RowBox[{\"x\", \",\", \"y\"}], \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                           RowBox[{SuperscriptBox[\"u\", \n",
       "\n",
       " \n",
       ">                              TagBox[RowBox[{\"(\", RowBox[{\"1\", \",\", \"0\"}], \n",
       "\n",
       " \n",
       ">                             \")\"}], Derivative], Rule[MultilineFunction, None]], \n",
       "\n",
       " \n",
       ">                             \"(\", RowBox[{\"x\", \",\", \"y\"}], \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                           RowBox[{SuperscriptBox[\"u\", \n",
       "\n",
       " \n",
       ">                              TagBox[RowBox[{\"(\", RowBox[{\"0\", \",\", \"1\"}], \n",
       "\n",
       " \n",
       ">                             \")\"}], Derivative], Rule[MultilineFunction, None]], \n",
       "\n",
       " \n",
       ">                             \"(\", RowBox[{\"x\", \",\", \"y\"}], \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                           RowBox[{\"v\", \"(\", RowBox[{\"x\", \",\", \"y\"}], \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                           RowBox[{SuperscriptBox[\"v\", \n",
       "\n",
       " \n",
       ">                              TagBox[RowBox[{\"(\", RowBox[{\"1\", \",\", \"0\"}], \n",
       "\n",
       " \n",
       ">                             \")\"}], Derivative], Rule[MultilineFunction, None]], \n",
       "\n",
       " \n",
       ">                             \"(\", RowBox[{\"x\", \",\", \"y\"}], \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                           RowBox[{SuperscriptBox[\"v\", \n",
       "\n",
       " \n",
       ">                              TagBox[RowBox[{\"(\", RowBox[{\"0\", \",\", \"1\"}], \n",
       "\n",
       " \n",
       ">                             \")\"}], Derivative], Rule[MultilineFunction, None]], \n",
       "\n",
       " \n",
       ">                             \"(\", RowBox[{\"x\", \",\", \"y\"}], \")\"}]}], \")\"}]}], \n",
       "\n",
       " \n",
       ">                     RowBox[{RowBox[{\"∂\", \n",
       "\n",
       " \n",
       ">                         RowBox[{SuperscriptBox[\"u\", \n",
       "\n",
       " \n",
       ">                            TagBox[RowBox[{\"(\", RowBox[{\"1\", \",\", \"0\"}], \")\"}], \n",
       "\n",
       " \n",
       ">                             Derivative], Rule[MultilineFunction, None]], \"(\", \n",
       "\n",
       " \n",
       ">                           RowBox[{\"x\", \",\", \"y\"}], \")\"}]}], \" \", \n",
       "\n",
       " \n",
       ">                       RowBox[{\"∂\", \n",
       "                      RowBox[{SuperscriptBox[\"v\", \n",
       "\n",
       " \n",
       ">                            TagBox[RowBox[{\"(\", RowBox[{\"0\", \",\", \"1\"}], \")\"}], \n",
       "\n",
       " \n",
       ">                             Derivative], Rule[MultilineFunction, None]], \"(\", \n",
       "\n",
       " \n",
       ">                           RowBox[{\"x\", \",\", \"y\"}], \")\"}]}]}], \n",
       "\n",
       " \n",
       ">                     Rule[MultilineFunction, None]]}], \")\"}], \" \", \n",
       "\n",
       " \n",
       ">                FractionBox[RowBox[{SuperscriptBox[\"∂\", \"2\"], \n",
       "\n",
       " \n",
       ">                   RowBox[{\"v\", \"(\", RowBox[{\"x\", \",\", \"y\"}], \")\"}]}], \n",
       "\n",
       " \n",
       ">                 RowBox[{RowBox[{\"∂\", \"x\"}], \" \", RowBox[{\"∂\", \"y\"}]}], \n",
       "\n",
       " \n",
       ">                 Rule[MultilineFunction, None]]}]}], \"\", \"0\"}], \",\", \n",
       "\n",
       " \n",
       ">          RowBox[{RowBox[{FractionBox[RowBox[{\"∂\", \n",
       "\n",
       " \n",
       ">                 RowBox[{\"L\", \"(\", RowBox[{\"x\", \",\", \"y\", \",\", \n",
       "\n",
       " \n",
       ">                     RowBox[{\"u\", \"(\", RowBox[{\"x\", \",\", \"y\"}], \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                     RowBox[{SuperscriptBox[\"u\", \n",
       "\n",
       " \n",
       ">                        TagBox[RowBox[{\"(\", RowBox[{\"1\", \",\", \"0\"}], \")\"}], \n",
       "\n",
       " \n",
       ">                         Derivative], Rule[MultilineFunction, None]], \"(\", \n",
       "\n",
       " \n",
       ">                       RowBox[{\"x\", \",\", \"y\"}], \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                     RowBox[{SuperscriptBox[\"u\", \n",
       "\n",
       " \n",
       ">                        TagBox[RowBox[{\"(\", RowBox[{\"0\", \",\", \"1\"}], \")\"}], \n",
       "\n",
       " \n",
       ">                         Derivative], Rule[MultilineFunction, None]], \"(\", \n",
       "\n",
       " \n",
       ">                       RowBox[{\"x\", \",\", \"y\"}], \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                     RowBox[{\"v\", \"(\", RowBox[{\"x\", \",\", \"y\"}], \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                     RowBox[{SuperscriptBox[\"v\", \n",
       "\n",
       " \n",
       ">                        TagBox[RowBox[{\"(\", RowBox[{\"1\", \",\", \"0\"}], \")\"}], \n",
       "\n",
       " \n",
       ">                         Derivative], Rule[MultilineFunction, None]], \"(\", \n",
       "\n",
       " \n",
       ">                       RowBox[{\"x\", \",\", \"y\"}], \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                     RowBox[{SuperscriptBox[\"v\", \n",
       "\n",
       " \n",
       ">                        TagBox[RowBox[{\"(\", RowBox[{\"0\", \",\", \"1\"}], \")\"}], \n",
       "\n",
       " \n",
       ">                         Derivative], Rule[MultilineFunction, None]], \"(\", \n",
       "\n",
       " \n",
       ">                       RowBox[{\"x\", \",\", \"y\"}], \")\"}]}], \")\"}]}], \n",
       "\n",
       " \n",
       ">               RowBox[{\"∂\", RowBox[{\"v\", \"(\", RowBox[{\"x\", \",\", \"y\"}], \")\"}]}], \n",
       "\n",
       " \n",
       ">               Rule[MultilineFunction, None]], \"-\", \n",
       "\n",
       " \n",
       ">              RowBox[{FractionBox[RowBox[{SuperscriptBox[\"∂\", \"2\"], \n",
       "\n",
       " \n",
       ">                   RowBox[{\"L\", \"(\", \n",
       "                  RowBox[{\"x\", \",\", \"y\", \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{\"u\", \"(\", RowBox[{\"x\", \",\", \"y\"}], \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{SuperscriptBox[\"u\", \n",
       "\n",
       " \n",
       ">                          TagBox[RowBox[{\"(\", RowBox[{\"1\", \",\", \"0\"}], \")\"}], \n",
       "\n",
       " \n",
       ">                           Derivative], Rule[MultilineFunction, None]], \"(\", \n",
       "\n",
       " \n",
       ">                         RowBox[{\"x\", \",\", \"y\"}], \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{SuperscriptBox[\"u\", \n",
       "\n",
       " \n",
       ">                          TagBox[RowBox[{\"(\", RowBox[{\"0\", \",\", \"1\"}], \")\"}], \n",
       "\n",
       " \n",
       ">                           Derivative], Rule[MultilineFunction, None]], \"(\", \n",
       "\n",
       " \n",
       ">                         RowBox[{\"x\", \",\", \"y\"}], \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{\"v\", \"(\", RowBox[{\"x\", \",\", \"y\"}], \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{SuperscriptBox[\"v\", \n",
       "\n",
       " \n",
       ">                          TagBox[RowBox[{\"(\", RowBox[{\"1\", \",\", \"0\"}], \")\"}], \n",
       "\n",
       " \n",
       ">                           Derivative], Rule[MultilineFunction, None]], \"(\", \n",
       "\n",
       " \n",
       ">                         RowBox[{\"x\", \",\", \"y\"}], \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{SuperscriptBox[\"v\", \n",
       "\n",
       " \n",
       ">                          TagBox[RowBox[{\"(\", RowBox[{\"0\", \",\", \"1\"}], \")\"}], \n",
       "\n",
       " \n",
       ">                           Derivative], Rule[MultilineFunction, None]], \"(\", \n",
       "\n",
       " \n",
       ">                         RowBox[{\"x\", \",\", \"y\"}], \")\"}]}], \")\"}]}], \n",
       "\n",
       " \n",
       ">                 RowBox[{\"∂\", SuperscriptBox[RowBox[{SuperscriptBox[\"v\", \n",
       "\n",
       " \n",
       ">                       TagBox[RowBox[{\"(\", RowBox[{\"1\", \",\", \"0\"}], \")\"}], \n",
       "\n",
       " \n",
       ">                        Derivative], Rule[MultilineFunction, None]], \"(\", \n",
       "\n",
       " \n",
       ">                      RowBox[{\"x\", \",\", \"y\"}], \")\"}], \"2\"]}], \n",
       "\n",
       " \n",
       ">                 Rule[MultilineFunction, None]], \" \", \n",
       "\n",
       " \n",
       ">                FractionBox[RowBox[{SuperscriptBox[\"∂\", \"2\"], \n",
       "\n",
       " \n",
       ">                   RowBox[{\"v\", \"(\", RowBox[{\"x\", \",\", \"y\"}], \")\"}]}], \n",
       "\n",
       " \n",
       ">                 RowBox[{\"∂\", SuperscriptBox[\"x\", \"2\"]}], \n",
       "\n",
       " \n",
       ">                 Rule[MultilineFunction, None]]}], \"-\", \n",
       "\n",
       " \n",
       ">              RowBox[{FractionBox[RowBox[{SuperscriptBox[\"∂\", \"2\"], \n",
       "\n",
       " \n",
       ">                   RowBox[{\"L\", \"(\", \n",
       "                  RowBox[{\"x\", \",\", \"y\", \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{\"u\", \"(\", RowBox[{\"x\", \",\", \"y\"}], \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{SuperscriptBox[\"u\", \n",
       "\n",
       " \n",
       ">                          TagBox[RowBox[{\"(\", RowBox[{\"1\", \",\", \"0\"}], \")\"}], \n",
       "\n",
       " \n",
       ">                           Derivative], Rule[MultilineFunction, None]], \"(\", \n",
       "\n",
       " \n",
       ">                         RowBox[{\"x\", \",\", \"y\"}], \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{SuperscriptBox[\"u\", \n",
       "\n",
       " \n",
       ">                          TagBox[RowBox[{\"(\", RowBox[{\"0\", \",\", \"1\"}], \")\"}], \n",
       "\n",
       " \n",
       ">                           Derivative], Rule[MultilineFunction, None]], \"(\", \n",
       "\n",
       " \n",
       ">                         RowBox[{\"x\", \",\", \"y\"}], \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{\"v\", \"(\", RowBox[{\"x\", \",\", \"y\"}], \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{SuperscriptBox[\"v\", \n",
       "\n",
       " \n",
       ">                          TagBox[RowBox[{\"(\", RowBox[{\"1\", \",\", \"0\"}], \")\"}], \n",
       "\n",
       " \n",
       ">                           Derivative], Rule[MultilineFunction, None]], \"(\", \n",
       "\n",
       " \n",
       ">                         RowBox[{\"x\", \",\", \"y\"}], \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{SuperscriptBox[\"v\", \n",
       "\n",
       " \n",
       ">                          TagBox[RowBox[{\"(\", RowBox[{\"0\", \",\", \"1\"}], \")\"}], \n",
       "\n",
       " \n",
       ">                           Derivative], Rule[MultilineFunction, None]], \"(\", \n",
       "\n",
       " \n",
       ">                         RowBox[{\"x\", \",\", \"y\"}], \")\"}]}], \")\"}]}], \n",
       "\n",
       " \n",
       ">                 RowBox[{\"∂\", SuperscriptBox[RowBox[{SuperscriptBox[\"v\", \n",
       "\n",
       " \n",
       ">                       TagBox[RowBox[{\"(\", RowBox[{\"0\", \",\", \"1\"}], \")\"}], \n",
       "\n",
       " \n",
       ">                        Derivative], Rule[MultilineFunction, None]], \"(\", \n",
       "\n",
       " \n",
       ">                      RowBox[{\"x\", \",\", \"y\"}], \")\"}], \"2\"]}], \n",
       "\n",
       " \n",
       ">                 Rule[MultilineFunction, None]], \" \", \n",
       "\n",
       " \n",
       ">                FractionBox[RowBox[{SuperscriptBox[\"∂\", \"2\"], \n",
       "\n",
       " \n",
       ">                   RowBox[{\"v\", \"(\", RowBox[{\"x\", \",\", \"y\"}], \")\"}]}], \n",
       "\n",
       " \n",
       ">                 RowBox[{\"∂\", SuperscriptBox[\"y\", \"2\"]}], \n",
       "\n",
       " \n",
       ">                 Rule[MultilineFunction, None]]}], \"-\", \n",
       "\n",
       " \n",
       ">              FractionBox[RowBox[{SuperscriptBox[\"∂\", \"2\"], \n",
       "\n",
       " \n",
       ">                 RowBox[{\"L\", \"(\", RowBox[{\"x\", \",\", \"y\", \",\", \n",
       "\n",
       " \n",
       ">                     RowBox[{\"u\", \"(\", RowBox[{\"x\", \",\", \"y\"}], \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                     RowBox[{SuperscriptBox[\"u\", \n",
       "\n",
       " \n",
       ">                        TagBox[RowBox[{\"(\", RowBox[{\"1\", \",\", \"0\"}], \")\"}], \n",
       "\n",
       " \n",
       ">                         Derivative], Rule[MultilineFunction, None]], \"(\", \n",
       "\n",
       " \n",
       ">                       RowBox[{\"x\", \",\", \"y\"}], \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                     RowBox[{SuperscriptBox[\"u\", \n",
       "\n",
       " \n",
       ">                        TagBox[RowBox[{\"(\", RowBox[{\"0\", \",\", \"1\"}], \")\"}], \n",
       "\n",
       " \n",
       ">                         Derivative], Rule[MultilineFunction, None]], \"(\", \n",
       "\n",
       " \n",
       ">                       RowBox[{\"x\", \",\", \"y\"}], \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                     RowBox[{\"v\", \"(\", RowBox[{\"x\", \",\", \"y\"}], \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                     RowBox[{SuperscriptBox[\"v\", \n",
       "\n",
       " \n",
       ">                        TagBox[RowBox[{\"(\", RowBox[{\"1\", \",\", \"0\"}], \")\"}], \n",
       "\n",
       " \n",
       ">                         Derivative], Rule[MultilineFunction, None]], \"(\", \n",
       "\n",
       " \n",
       ">                       RowBox[{\"x\", \",\", \"y\"}], \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                     RowBox[{SuperscriptBox[\"v\", \n",
       "\n",
       " \n",
       ">                        TagBox[RowBox[{\"(\", RowBox[{\"0\", \",\", \"1\"}], \")\"}], \n",
       "\n",
       " \n",
       ">                         Derivative], Rule[MultilineFunction, None]], \"(\", \n",
       "\n",
       " \n",
       ">                       RowBox[{\"x\", \",\", \"y\"}], \")\"}]}], \")\"}]}], \n",
       "\n",
       " \n",
       ">               RowBox[{RowBox[{\"∂\", \"x\"}], \" \", \n",
       "\n",
       " \n",
       ">                 RowBox[{\"∂\", RowBox[{SuperscriptBox[\"v\", \n",
       "\n",
       " \n",
       ">                      TagBox[RowBox[{\"(\", RowBox[{\"1\", \",\", \"0\"}], \")\"}], \n",
       "\n",
       " \n",
       ">                       Derivative], Rule[MultilineFunction, None]], \"(\", \n",
       "\n",
       " \n",
       ">                     RowBox[{\"x\", \",\", \"y\"}], \")\"}]}]}], Rule[MultilineFunction,\\\n",
       " \n",
       ">    None]]\\\n",
       ", \"-\", FractionBox[RowBox[{SuperscriptBox[\"∂\", \"2\"], \n",
       "\n",
       " \n",
       ">                 RowBox[{\"L\", \"(\", RowBox[{\"x\", \",\", \"y\", \",\", \n",
       "\n",
       " \n",
       ">                     RowBox[{\"u\", \"(\", RowBox[{\"x\", \",\", \"y\"}], \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                     RowBox[{SuperscriptBox[\"u\", \n",
       "\n",
       " \n",
       ">                        TagBox[RowBox[{\"(\", RowBox[{\"1\", \",\", \"0\"}], \")\"}], \n",
       "\n",
       " \n",
       ">                         Derivative], Rule[MultilineFunction, None]], \"(\", \n",
       "\n",
       " \n",
       ">                       RowBox[{\"x\", \",\", \"y\"}], \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                     RowBox[{SuperscriptBox[\"u\", \n",
       "\n",
       " \n",
       ">                        TagBox[RowBox[{\"(\", RowBox[{\"0\", \",\", \"1\"}], \")\"}], \n",
       "\n",
       " \n",
       ">                         Derivative], Rule[MultilineFunction, None]], \"(\", \n",
       "\n",
       " \n",
       ">                       RowBox[{\"x\", \",\", \"y\"}], \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                     RowBox[{\"v\", \"(\", RowBox[{\"x\", \",\", \"y\"}], \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                     RowBox[{SuperscriptBox[\"v\", \n",
       "\n",
       " \n",
       ">                        TagBox[RowBox[{\"(\", RowBox[{\"1\", \",\", \"0\"}], \")\"}], \n",
       "\n",
       " \n",
       ">                         Derivative], Rule[MultilineFunction, None]], \"(\", \n",
       "\n",
       " \n",
       ">                       RowBox[{\"x\", \",\", \"y\"}], \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                     RowBox[{SuperscriptBox[\"v\", \n",
       "\n",
       " \n",
       ">                        TagBox[RowBox[{\"(\", RowBox[{\"0\", \",\", \"1\"}], \")\"}], \n",
       "\n",
       " \n",
       ">                         Derivative], Rule[MultilineFunction, None]], \"(\", \n",
       "\n",
       " \n",
       ">                       RowBox[{\"x\", \",\", \"y\"}], \")\"}]}], \")\"}]}], \n",
       "\n",
       " \n",
       ">               RowBox[{RowBox[{\"∂\", \"y\"}], \" \", \n",
       "\n",
       " \n",
       ">                 RowBox[{\"∂\", RowBox[{SuperscriptBox[\"v\", \n",
       "\n",
       " \n",
       ">                      TagBox[RowBox[{\"(\", RowBox[{\"0\", \",\", \"1\"}], \")\"}], \n",
       "\n",
       " \n",
       ">                       Derivative], Rule[MultilineFunction, None]], \"(\", \n",
       "\n",
       " \n",
       ">                     RowBox[{\"x\", \",\", \"y\"}], \")\"}]}]}], Rule[MultilineFunction,\\\n",
       " \n",
       ">    None]]\\\n",
       ", \"-\", RowBox[{FractionBox[RowBox[{\"∂\", \n",
       "\n",
       " \n",
       ">                   RowBox[{\"u\", \"(\", RowBox[{\"x\", \",\", \"y\"}], \")\"}]}], \n",
       "\n",
       " \n",
       ">                 RowBox[{\"∂\", \"y\"}], Rule[MultilineFunction, None]], \" \", \n",
       "\n",
       " \n",
       ">                FractionBox[RowBox[{SuperscriptBox[\"∂\", \"2\"], \n",
       "\n",
       " \n",
       ">                   RowBox[{\"L\", \"(\", \n",
       "                  RowBox[{\"x\", \",\", \"y\", \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{\"u\", \"(\", RowBox[{\"x\", \",\", \"y\"}], \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{SuperscriptBox[\"u\", \n",
       "\n",
       " \n",
       ">                          TagBox[RowBox[{\"(\", RowBox[{\"1\", \",\", \"0\"}], \")\"}], \n",
       "\n",
       " \n",
       ">                           Derivative], Rule[MultilineFunction, None]], \"(\", \n",
       "\n",
       " \n",
       ">                         RowBox[{\"x\", \",\", \"y\"}], \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{SuperscriptBox[\"u\", \n",
       "\n",
       " \n",
       ">                          TagBox[RowBox[{\"(\", RowBox[{\"0\", \",\", \"1\"}], \")\"}], \n",
       "\n",
       " \n",
       ">                           Derivative], Rule[MultilineFunction, None]], \"(\", \n",
       "\n",
       " \n",
       ">                         RowBox[{\"x\", \",\", \"y\"}], \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{\"v\", \"(\", RowBox[{\"x\", \",\", \"y\"}], \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{SuperscriptBox[\"v\", \n",
       "\n",
       " \n",
       ">                          TagBox[RowBox[{\"(\", RowBox[{\"1\", \",\", \"0\"}], \")\"}], \n",
       "\n",
       " \n",
       ">                           Derivative], Rule[MultilineFunction, None]], \"(\", \n",
       "\n",
       " \n",
       ">                         RowBox[{\"x\", \",\", \"y\"}], \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{SuperscriptBox[\"v\", \n",
       "\n",
       " \n",
       ">                          TagBox[RowBox[{\"(\", RowBox[{\"0\", \",\", \"1\"}], \")\"}], \n",
       "\n",
       " \n",
       ">                           Derivative], Rule[MultilineFunction, None]], \"(\", \n",
       "\n",
       " \n",
       ">                         RowBox[{\"x\", \",\", \"y\"}], \")\"}]}], \")\"}]}], \n",
       "\n",
       " \n",
       ">                 RowBox[{RowBox[{\"∂\", \n",
       "\n",
       " \n",
       ">                     RowBox[{\"u\", \"(\", RowBox[{\"x\", \",\", \"y\"}], \")\"}]}], \" \", \n",
       "\n",
       " \n",
       ">                   RowBox[{\"∂\", RowBox[{SuperscriptBox[\"v\", \n",
       "\n",
       " \n",
       ">                        TagBox[RowBox[{\"(\", RowBox[{\"0\", \",\", \"1\"}], \")\"}], \n",
       "\n",
       " \n",
       ">                         Derivative], Rule[MultilineFunction, None]], \"(\", \n",
       "\n",
       " \n",
       ">                       RowBox[{\"x\", \",\", \"y\"}], \")\"}]}]}], \n",
       "\n",
       " \n",
       ">                 Rule[MultilineFunction, None]]}], \"-\", \n",
       "\n",
       " \n",
       ">              RowBox[{FractionBox[RowBox[{\"∂\", \n",
       "\n",
       " \n",
       ">                   RowBox[{\"u\", \"(\", RowBox[{\"x\", \",\", \"y\"}], \")\"}]}], \n",
       "\n",
       " \n",
       ">                 RowBox[{\"∂\", \"x\"}], Rule[MultilineFunction, None]], \" \", \n",
       "\n",
       " \n",
       ">                FractionBox[RowBox[{SuperscriptBox[\"∂\", \"2\"], \n",
       "\n",
       " \n",
       ">                   RowBox[{\"L\", \"(\", \n",
       "                  RowBox[{\"x\", \",\", \"y\", \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{\"u\", \"(\", RowBox[{\"x\", \",\", \"y\"}], \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{SuperscriptBox[\"u\", \n",
       "\n",
       " \n",
       ">                          TagBox[RowBox[{\"(\", RowBox[{\"1\", \",\", \"0\"}], \")\"}], \n",
       "\n",
       " \n",
       ">                           Derivative], Rule[MultilineFunction, None]], \"(\", \n",
       "\n",
       " \n",
       ">                         RowBox[{\"x\", \",\", \"y\"}], \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{SuperscriptBox[\"u\", \n",
       "\n",
       " \n",
       ">                          TagBox[RowBox[{\"(\", RowBox[{\"0\", \",\", \"1\"}], \")\"}], \n",
       "\n",
       " \n",
       ">                           Derivative], Rule[MultilineFunction, None]], \"(\", \n",
       "\n",
       " \n",
       ">                         RowBox[{\"x\", \",\", \"y\"}], \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{\"v\", \"(\", RowBox[{\"x\", \",\", \"y\"}], \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{SuperscriptBox[\"v\", \n",
       "\n",
       " \n",
       ">                          TagBox[RowBox[{\"(\", RowBox[{\"1\", \",\", \"0\"}], \")\"}], \n",
       "\n",
       " \n",
       ">                           Derivative], Rule[MultilineFunction, None]], \"(\", \n",
       "\n",
       " \n",
       ">                         RowBox[{\"x\", \",\", \"y\"}], \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{SuperscriptBox[\"v\", \n",
       "\n",
       " \n",
       ">                          TagBox[RowBox[{\"(\", RowBox[{\"0\", \",\", \"1\"}], \")\"}], \n",
       "\n",
       " \n",
       ">                           Derivative], Rule[MultilineFunction, None]], \"(\", \n",
       "\n",
       " \n",
       ">                         RowBox[{\"x\", \",\", \"y\"}], \")\"}]}], \")\"}]}], \n",
       "\n",
       " \n",
       ">                 RowBox[{RowBox[{\"∂\", \n",
       "\n",
       " \n",
       ">                     RowBox[{\"u\", \"(\", RowBox[{\"x\", \",\", \"y\"}], \")\"}]}], \" \", \n",
       "\n",
       " \n",
       ">                   RowBox[{\"∂\", RowBox[{SuperscriptBox[\"v\", \n",
       "\n",
       " \n",
       ">                        TagBox[RowBox[{\"(\", RowBox[{\"1\", \",\", \"0\"}], \")\"}], \n",
       "\n",
       " \n",
       ">                         Derivative], Rule[MultilineFunction, None]], \"(\", \n",
       "\n",
       " \n",
       ">                       RowBox[{\"x\", \",\", \"y\"}], \")\"}]}]}], \n",
       "\n",
       " \n",
       ">                 Rule[MultilineFunction, None]]}], \"-\", \n",
       "\n",
       " \n",
       ">              RowBox[{FractionBox[RowBox[{\"∂\", \n",
       "\n",
       " \n",
       ">                   RowBox[{\"v\", \"(\", RowBox[{\"x\", \",\", \"y\"}], \")\"}]}], \n",
       "\n",
       " \n",
       ">                 RowBox[{\"∂\", \"y\"}], Rule[MultilineFunction, None]], \" \", \n",
       "\n",
       " \n",
       ">                FractionBox[RowBox[{SuperscriptBox[\"∂\", \"2\"], \n",
       "\n",
       " \n",
       ">                   RowBox[{\"L\", \"(\", \n",
       "                  RowBox[{\"x\", \",\", \"y\", \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{\"u\", \"(\", RowBox[{\"x\", \",\", \"y\"}], \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{SuperscriptBox[\"u\", \n",
       "\n",
       " \n",
       ">                          TagBox[RowBox[{\"(\", RowBox[{\"1\", \",\", \"0\"}], \")\"}], \n",
       "\n",
       " \n",
       ">                           Derivative], Rule[MultilineFunction, None]], \"(\", \n",
       "\n",
       " \n",
       ">                         RowBox[{\"x\", \",\", \"y\"}], \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{SuperscriptBox[\"u\", \n",
       "\n",
       " \n",
       ">                          TagBox[RowBox[{\"(\", RowBox[{\"0\", \",\", \"1\"}], \")\"}], \n",
       "\n",
       " \n",
       ">                           Derivative], Rule[MultilineFunction, None]], \"(\", \n",
       "\n",
       " \n",
       ">                         RowBox[{\"x\", \",\", \"y\"}], \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{\"v\", \"(\", RowBox[{\"x\", \",\", \"y\"}], \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{SuperscriptBox[\"v\", \n",
       "\n",
       " \n",
       ">                          TagBox[RowBox[{\"(\", RowBox[{\"1\", \",\", \"0\"}], \")\"}], \n",
       "\n",
       " \n",
       ">                           Derivative], Rule[MultilineFunction, None]], \"(\", \n",
       "\n",
       " \n",
       ">                         RowBox[{\"x\", \",\", \"y\"}], \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{SuperscriptBox[\"v\", \n",
       "\n",
       " \n",
       ">                          TagBox[RowBox[{\"(\", RowBox[{\"0\", \",\", \"1\"}], \")\"}], \n",
       "\n",
       " \n",
       ">                           Derivative], Rule[MultilineFunction, None]], \"(\", \n",
       "\n",
       " \n",
       ">                         RowBox[{\"x\", \",\", \"y\"}], \")\"}]}], \")\"}]}], \n",
       "\n",
       " \n",
       ">                 RowBox[{RowBox[{\"∂\", \n",
       "\n",
       " \n",
       ">                     RowBox[{\"v\", \"(\", RowBox[{\"x\", \",\", \"y\"}], \")\"}]}], \" \", \n",
       "\n",
       " \n",
       ">                   RowBox[{\"∂\", RowBox[{SuperscriptBox[\"v\", \n",
       "\n",
       " \n",
       ">                        TagBox[RowBox[{\"(\", RowBox[{\"0\", \",\", \"1\"}], \")\"}], \n",
       "\n",
       " \n",
       ">                         Derivative], Rule[MultilineFunction, None]], \"(\", \n",
       "\n",
       " \n",
       ">                       RowBox[{\"x\", \",\", \"y\"}], \")\"}]}]}], \n",
       "\n",
       " \n",
       ">                 Rule[MultilineFunction, None]]}], \"-\", \n",
       "\n",
       " \n",
       ">              RowBox[{FractionBox[RowBox[{\"∂\", \n",
       "\n",
       " \n",
       ">                   RowBox[{\"v\", \"(\", RowBox[{\"x\", \",\", \"y\"}], \")\"}]}], \n",
       "\n",
       " \n",
       ">                 RowBox[{\"∂\", \"x\"}], Rule[MultilineFunction, None]], \" \", \n",
       "\n",
       " \n",
       ">                FractionBox[RowBox[{SuperscriptBox[\"∂\", \"2\"], \n",
       "\n",
       " \n",
       ">                   RowBox[{\"L\", \"(\", \n",
       "                  RowBox[{\"x\", \",\", \"y\", \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{\"u\", \"(\", RowBox[{\"x\", \",\", \"y\"}], \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{SuperscriptBox[\"u\", \n",
       "\n",
       " \n",
       ">                          TagBox[RowBox[{\"(\", RowBox[{\"1\", \",\", \"0\"}], \")\"}], \n",
       "\n",
       " \n",
       ">                           Derivative], Rule[MultilineFunction, None]], \"(\", \n",
       "\n",
       " \n",
       ">                         RowBox[{\"x\", \",\", \"y\"}], \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{SuperscriptBox[\"u\", \n",
       "\n",
       " \n",
       ">                          TagBox[RowBox[{\"(\", RowBox[{\"0\", \",\", \"1\"}], \")\"}], \n",
       "\n",
       " \n",
       ">                           Derivative], Rule[MultilineFunction, None]], \"(\", \n",
       "\n",
       " \n",
       ">                         RowBox[{\"x\", \",\", \"y\"}], \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{\"v\", \"(\", RowBox[{\"x\", \",\", \"y\"}], \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{SuperscriptBox[\"v\", \n",
       "\n",
       " \n",
       ">                          TagBox[RowBox[{\"(\", RowBox[{\"1\", \",\", \"0\"}], \")\"}], \n",
       "\n",
       " \n",
       ">                           Derivative], Rule[MultilineFunction, None]], \"(\", \n",
       "\n",
       " \n",
       ">                         RowBox[{\"x\", \",\", \"y\"}], \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{SuperscriptBox[\"v\", \n",
       "\n",
       " \n",
       ">                          TagBox[RowBox[{\"(\", RowBox[{\"0\", \",\", \"1\"}], \")\"}], \n",
       "\n",
       " \n",
       ">                           Derivative], Rule[MultilineFunction, None]], \"(\", \n",
       "\n",
       " \n",
       ">                         RowBox[{\"x\", \",\", \"y\"}], \")\"}]}], \")\"}]}], \n",
       "\n",
       " \n",
       ">                 RowBox[{RowBox[{\"∂\", \n",
       "\n",
       " \n",
       ">                     RowBox[{\"v\", \"(\", RowBox[{\"x\", \",\", \"y\"}], \")\"}]}], \" \", \n",
       "\n",
       " \n",
       ">                   RowBox[{\"∂\", RowBox[{SuperscriptBox[\"v\", \n",
       "\n",
       " \n",
       ">                        TagBox[RowBox[{\"(\", RowBox[{\"1\", \",\", \"0\"}], \")\"}], \n",
       "\n",
       " \n",
       ">                         Derivative], Rule[MultilineFunction, None]], \"(\", \n",
       "\n",
       " \n",
       ">                       RowBox[{\"x\", \",\", \"y\"}], \")\"}]}]}], \n",
       "\n",
       " \n",
       ">                 Rule[MultilineFunction, None]]}], \"-\", \n",
       "\n",
       " \n",
       ">              RowBox[{FractionBox[RowBox[{SuperscriptBox[\"∂\", \"2\"], \n",
       "\n",
       " \n",
       ">                   RowBox[{\"u\", \"(\", RowBox[{\"x\", \",\", \"y\"}], \")\"}]}], \n",
       "\n",
       " \n",
       ">                 RowBox[{\"∂\", SuperscriptBox[\"y\", \"2\"]}], \n",
       "\n",
       " \n",
       ">                 Rule[MultilineFunction, None]], \" \", \n",
       "\n",
       " \n",
       ">                FractionBox[RowBox[{SuperscriptBox[\"∂\", \"2\"], \n",
       "\n",
       " \n",
       ">                   RowBox[{\"L\", \"(\", \n",
       "                  RowBox[{\"x\", \",\", \"y\", \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{\"u\", \"(\", RowBox[{\"x\", \",\", \"y\"}], \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{SuperscriptBox[\"u\", \n",
       "\n",
       " \n",
       ">                          TagBox[RowBox[{\"(\", RowBox[{\"1\", \",\", \"0\"}], \")\"}], \n",
       "\n",
       " \n",
       ">                           Derivative], Rule[MultilineFunction, None]], \"(\", \n",
       "\n",
       " \n",
       ">                         RowBox[{\"x\", \",\", \"y\"}], \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{SuperscriptBox[\"u\", \n",
       "\n",
       " \n",
       ">                          TagBox[RowBox[{\"(\", RowBox[{\"0\", \",\", \"1\"}], \")\"}], \n",
       "\n",
       " \n",
       ">                           Derivative], Rule[MultilineFunction, None]], \"(\", \n",
       "\n",
       " \n",
       ">                         RowBox[{\"x\", \",\", \"y\"}], \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{\"v\", \"(\", RowBox[{\"x\", \",\", \"y\"}], \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{SuperscriptBox[\"v\", \n",
       "\n",
       " \n",
       ">                          TagBox[RowBox[{\"(\", RowBox[{\"1\", \",\", \"0\"}], \")\"}], \n",
       "\n",
       " \n",
       ">                           Derivative], Rule[MultilineFunction, None]], \"(\", \n",
       "\n",
       " \n",
       ">                         RowBox[{\"x\", \",\", \"y\"}], \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{SuperscriptBox[\"v\", \n",
       "\n",
       " \n",
       ">                          TagBox[RowBox[{\"(\", RowBox[{\"0\", \",\", \"1\"}], \")\"}], \n",
       "\n",
       " \n",
       ">                           Derivative], Rule[MultilineFunction, None]], \"(\", \n",
       "\n",
       " \n",
       ">                         RowBox[{\"x\", \",\", \"y\"}], \")\"}]}], \")\"}]}], \n",
       "\n",
       " \n",
       ">                 RowBox[{RowBox[{\"∂\", \n",
       "                  RowBox[{SuperscriptBox[\"u\", \n",
       "\n",
       " \n",
       ">                        TagBox[RowBox[{\"(\", RowBox[{\"0\", \",\", \"1\"}], \")\"}], \n",
       "\n",
       " \n",
       ">                         Derivative], Rule[MultilineFunction, None]], \"(\", \n",
       "\n",
       " \n",
       ">                       RowBox[{\"x\", \",\", \"y\"}], \")\"}]}], \" \", \n",
       "\n",
       " \n",
       ">                   RowBox[{\"∂\", RowBox[{SuperscriptBox[\"v\", \n",
       "\n",
       " \n",
       ">                        TagBox[RowBox[{\"(\", RowBox[{\"0\", \",\", \"1\"}], \")\"}], \n",
       "\n",
       " \n",
       ">                         Derivative], Rule[MultilineFunction, None]], \"(\", \n",
       "\n",
       " \n",
       ">                       RowBox[{\"x\", \",\", \"y\"}], \")\"}]}]}], \n",
       "\n",
       " \n",
       ">                 Rule[MultilineFunction, None]]}], \"-\", \n",
       "\n",
       " \n",
       ">              RowBox[{FractionBox[RowBox[{SuperscriptBox[\"∂\", \"2\"], \n",
       "\n",
       " \n",
       ">                   RowBox[{\"u\", \"(\", RowBox[{\"x\", \",\", \"y\"}], \")\"}]}], \n",
       "\n",
       " \n",
       ">                 RowBox[{\"∂\", SuperscriptBox[\"x\", \"2\"]}], \n",
       "\n",
       " \n",
       ">                 Rule[MultilineFunction, None]], \" \", \n",
       "\n",
       " \n",
       ">                FractionBox[RowBox[{SuperscriptBox[\"∂\", \"2\"], \n",
       "\n",
       " \n",
       ">                   RowBox[{\"L\", \"(\", \n",
       "                  RowBox[{\"x\", \",\", \"y\", \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{\"u\", \"(\", RowBox[{\"x\", \",\", \"y\"}], \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{SuperscriptBox[\"u\", \n",
       "\n",
       " \n",
       ">                          TagBox[RowBox[{\"(\", RowBox[{\"1\", \",\", \"0\"}], \")\"}], \n",
       "\n",
       " \n",
       ">                           Derivative], Rule[MultilineFunction, None]], \"(\", \n",
       "\n",
       " \n",
       ">                         RowBox[{\"x\", \",\", \"y\"}], \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{SuperscriptBox[\"u\", \n",
       "\n",
       " \n",
       ">                          TagBox[RowBox[{\"(\", RowBox[{\"0\", \",\", \"1\"}], \")\"}], \n",
       "\n",
       " \n",
       ">                           Derivative], Rule[MultilineFunction, None]], \"(\", \n",
       "\n",
       " \n",
       ">                         RowBox[{\"x\", \",\", \"y\"}], \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{\"v\", \"(\", RowBox[{\"x\", \",\", \"y\"}], \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{SuperscriptBox[\"v\", \n",
       "\n",
       " \n",
       ">                          TagBox[RowBox[{\"(\", RowBox[{\"1\", \",\", \"0\"}], \")\"}], \n",
       "\n",
       " \n",
       ">                           Derivative], Rule[MultilineFunction, None]], \"(\", \n",
       "\n",
       " \n",
       ">                         RowBox[{\"x\", \",\", \"y\"}], \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{SuperscriptBox[\"v\", \n",
       "\n",
       " \n",
       ">                          TagBox[RowBox[{\"(\", RowBox[{\"0\", \",\", \"1\"}], \")\"}], \n",
       "\n",
       " \n",
       ">                           Derivative], Rule[MultilineFunction, None]], \"(\", \n",
       "\n",
       " \n",
       ">                         RowBox[{\"x\", \",\", \"y\"}], \")\"}]}], \")\"}]}], \n",
       "\n",
       " \n",
       ">                 RowBox[{RowBox[{\"∂\", \n",
       "                  RowBox[{SuperscriptBox[\"u\", \n",
       "\n",
       " \n",
       ">                        TagBox[RowBox[{\"(\", RowBox[{\"1\", \",\", \"0\"}], \")\"}], \n",
       "\n",
       " \n",
       ">                         Derivative], Rule[MultilineFunction, None]], \"(\", \n",
       "\n",
       " \n",
       ">                       RowBox[{\"x\", \",\", \"y\"}], \")\"}]}], \" \", \n",
       "\n",
       " \n",
       ">                   RowBox[{\"∂\", RowBox[{SuperscriptBox[\"v\", \n",
       "\n",
       " \n",
       ">                        TagBox[RowBox[{\"(\", RowBox[{\"1\", \",\", \"0\"}], \")\"}], \n",
       "\n",
       " \n",
       ">                         Derivative], Rule[MultilineFunction, None]], \"(\", \n",
       "\n",
       " \n",
       ">                       RowBox[{\"x\", \",\", \"y\"}], \")\"}]}]}], \n",
       "\n",
       " \n",
       ">                 Rule[MultilineFunction, None]]}], \"-\", \n",
       "\n",
       " \n",
       ">              RowBox[{FractionBox[RowBox[{SuperscriptBox[\"∂\", \"2\"], \n",
       "\n",
       " \n",
       ">                   RowBox[{\"L\", \"(\", \n",
       "                  RowBox[{\"x\", \",\", \"y\", \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{\"u\", \"(\", RowBox[{\"x\", \",\", \"y\"}], \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{SuperscriptBox[\"u\", \n",
       "\n",
       " \n",
       ">                          TagBox[RowBox[{\"(\", RowBox[{\"1\", \",\", \"0\"}], \")\"}], \n",
       "\n",
       " \n",
       ">                           Derivative], Rule[MultilineFunction, None]], \"(\", \n",
       "\n",
       " \n",
       ">                         RowBox[{\"x\", \",\", \"y\"}], \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{SuperscriptBox[\"u\", \n",
       "\n",
       " \n",
       ">                          TagBox[RowBox[{\"(\", RowBox[{\"0\", \",\", \"1\"}], \")\"}], \n",
       "\n",
       " \n",
       ">                           Derivative], Rule[MultilineFunction, None]], \"(\", \n",
       "\n",
       " \n",
       ">                         RowBox[{\"x\", \",\", \"y\"}], \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{\"v\", \"(\", RowBox[{\"x\", \",\", \"y\"}], \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{SuperscriptBox[\"v\", \n",
       "\n",
       " \n",
       ">                          TagBox[RowBox[{\"(\", RowBox[{\"1\", \",\", \"0\"}], \")\"}], \n",
       "\n",
       " \n",
       ">                           Derivative], Rule[MultilineFunction, None]], \"(\", \n",
       "\n",
       " \n",
       ">                         RowBox[{\"x\", \",\", \"y\"}], \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{SuperscriptBox[\"v\", \n",
       "\n",
       " \n",
       ">                          TagBox[RowBox[{\"(\", RowBox[{\"0\", \",\", \"1\"}], \")\"}], \n",
       "\n",
       " \n",
       ">                           Derivative], Rule[MultilineFunction, None]], \"(\", \n",
       "\n",
       " \n",
       ">                         RowBox[{\"x\", \",\", \"y\"}], \")\"}]}], \")\"}]}], \n",
       "\n",
       " \n",
       ">                 RowBox[{RowBox[{\"∂\", \n",
       "                  RowBox[{SuperscriptBox[\"u\", \n",
       "\n",
       " \n",
       ">                        TagBox[RowBox[{\"(\", RowBox[{\"0\", \",\", \"1\"}], \")\"}], \n",
       "\n",
       " \n",
       ">                         Derivative], Rule[MultilineFunction, None]], \"(\", \n",
       "\n",
       " \n",
       ">                       RowBox[{\"x\", \",\", \"y\"}], \")\"}]}], \" \", \n",
       "\n",
       " \n",
       ">                   RowBox[{\"∂\", RowBox[{SuperscriptBox[\"v\", \n",
       "\n",
       " \n",
       ">                        TagBox[RowBox[{\"(\", RowBox[{\"1\", \",\", \"0\"}], \")\"}], \n",
       "\n",
       " \n",
       ">                         Derivative], Rule[MultilineFunction, None]], \"(\", \n",
       "\n",
       " \n",
       ">                       RowBox[{\"x\", \",\", \"y\"}], \")\"}]}]}], \n",
       "\n",
       " \n",
       ">                 Rule[MultilineFunction, None]], \" \", \n",
       "\n",
       " \n",
       ">                FractionBox[RowBox[{SuperscriptBox[\"∂\", \"2\"], \n",
       "\n",
       " \n",
       ">                   RowBox[{\"u\", \"(\", RowBox[{\"x\", \",\", \"y\"}], \")\"}]}], \n",
       "\n",
       " \n",
       ">                 RowBox[{RowBox[{\"∂\", \"x\"}], \" \", RowBox[{\"∂\", \"y\"}]}], \n",
       "\n",
       " \n",
       ">                 Rule[MultilineFunction, None]]}], \"-\", \n",
       "\n",
       " \n",
       ">              RowBox[{FractionBox[RowBox[{SuperscriptBox[\"∂\", \"2\"], \n",
       "\n",
       " \n",
       ">                   RowBox[{\"L\", \"(\", \n",
       "                  RowBox[{\"x\", \",\", \"y\", \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{\"u\", \"(\", RowBox[{\"x\", \",\", \"y\"}], \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{SuperscriptBox[\"u\", \n",
       "\n",
       " \n",
       ">                          TagBox[RowBox[{\"(\", RowBox[{\"1\", \",\", \"0\"}], \")\"}], \n",
       "\n",
       " \n",
       ">                           Derivative], Rule[MultilineFunction, None]], \"(\", \n",
       "\n",
       " \n",
       ">                         RowBox[{\"x\", \",\", \"y\"}], \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{SuperscriptBox[\"u\", \n",
       "\n",
       " \n",
       ">                          TagBox[RowBox[{\"(\", RowBox[{\"0\", \",\", \"1\"}], \")\"}], \n",
       "\n",
       " \n",
       ">                           Derivative], Rule[MultilineFunction, None]], \"(\", \n",
       "\n",
       " \n",
       ">                         RowBox[{\"x\", \",\", \"y\"}], \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{\"v\", \"(\", RowBox[{\"x\", \",\", \"y\"}], \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{SuperscriptBox[\"v\", \n",
       "\n",
       " \n",
       ">                          TagBox[RowBox[{\"(\", RowBox[{\"1\", \",\", \"0\"}], \")\"}], \n",
       "\n",
       " \n",
       ">                           Derivative], Rule[MultilineFunction, None]], \"(\", \n",
       "\n",
       " \n",
       ">                         RowBox[{\"x\", \",\", \"y\"}], \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{SuperscriptBox[\"v\", \n",
       "\n",
       " \n",
       ">                          TagBox[RowBox[{\"(\", RowBox[{\"0\", \",\", \"1\"}], \")\"}], \n",
       "\n",
       " \n",
       ">                           Derivative], Rule[MultilineFunction, None]], \"(\", \n",
       "\n",
       " \n",
       ">                         RowBox[{\"x\", \",\", \"y\"}], \")\"}]}], \")\"}]}], \n",
       "\n",
       " \n",
       ">                 RowBox[{RowBox[{\"∂\", \n",
       "                  RowBox[{SuperscriptBox[\"u\", \n",
       "\n",
       " \n",
       ">                        TagBox[RowBox[{\"(\", RowBox[{\"1\", \",\", \"0\"}], \")\"}], \n",
       "\n",
       " \n",
       ">                         Derivative], Rule[MultilineFunction, None]], \"(\", \n",
       "\n",
       " \n",
       ">                       RowBox[{\"x\", \",\", \"y\"}], \")\"}]}], \" \", \n",
       "\n",
       " \n",
       ">                   RowBox[{\"∂\", RowBox[{SuperscriptBox[\"v\", \n",
       "\n",
       " \n",
       ">                        TagBox[RowBox[{\"(\", RowBox[{\"0\", \",\", \"1\"}], \")\"}], \n",
       "\n",
       " \n",
       ">                         Derivative], Rule[MultilineFunction, None]], \"(\", \n",
       "\n",
       " \n",
       ">                       RowBox[{\"x\", \",\", \"y\"}], \")\"}]}]}], \n",
       "\n",
       " \n",
       ">                 Rule[MultilineFunction, None]], \" \", \n",
       "\n",
       " \n",
       ">                FractionBox[RowBox[{SuperscriptBox[\"∂\", \"2\"], \n",
       "\n",
       " \n",
       ">                   RowBox[{\"u\", \"(\", RowBox[{\"x\", \",\", \"y\"}], \")\"}]}], \n",
       "\n",
       " \n",
       ">                 RowBox[{RowBox[{\"∂\", \"x\"}], \" \", RowBox[{\"∂\", \"y\"}]}], \n",
       "\n",
       " \n",
       ">                 Rule[MultilineFunction, None]]}], \"-\", \n",
       "\n",
       " \n",
       ">              RowBox[{\"2\", \" \", FractionBox[RowBox[{SuperscriptBox[\"∂\", \"2\"], \n",
       "\n",
       " \n",
       ">                   RowBox[{\"L\", \"(\", \n",
       "                  RowBox[{\"x\", \",\", \"y\", \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{\"u\", \"(\", RowBox[{\"x\", \",\", \"y\"}], \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{SuperscriptBox[\"u\", \n",
       "\n",
       " \n",
       ">                          TagBox[RowBox[{\"(\", RowBox[{\"1\", \",\", \"0\"}], \")\"}], \n",
       "\n",
       " \n",
       ">                           Derivative], Rule[MultilineFunction, None]], \"(\", \n",
       "\n",
       " \n",
       ">                         RowBox[{\"x\", \",\", \"y\"}], \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{SuperscriptBox[\"u\", \n",
       "\n",
       " \n",
       ">                          TagBox[RowBox[{\"(\", RowBox[{\"0\", \",\", \"1\"}], \")\"}], \n",
       "\n",
       " \n",
       ">                           Derivative], Rule[MultilineFunction, None]], \"(\", \n",
       "\n",
       " \n",
       ">                         RowBox[{\"x\", \",\", \"y\"}], \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{\"v\", \"(\", RowBox[{\"x\", \",\", \"y\"}], \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{SuperscriptBox[\"v\", \n",
       "\n",
       " \n",
       ">                          TagBox[RowBox[{\"(\", RowBox[{\"1\", \",\", \"0\"}], \")\"}], \n",
       "\n",
       " \n",
       ">                           Derivative], Rule[MultilineFunction, None]], \"(\", \n",
       "\n",
       " \n",
       ">                         RowBox[{\"x\", \",\", \"y\"}], \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{SuperscriptBox[\"v\", \n",
       "\n",
       " \n",
       ">                          TagBox[RowBox[{\"(\", RowBox[{\"0\", \",\", \"1\"}], \")\"}], \n",
       "\n",
       " \n",
       ">                           Derivative], Rule[MultilineFunction, None]], \"(\", \n",
       "\n",
       " \n",
       ">                         RowBox[{\"x\", \",\", \"y\"}], \")\"}]}], \")\"}]}], \n",
       "\n",
       " \n",
       ">                 RowBox[{RowBox[{\"∂\", \n",
       "                  RowBox[{SuperscriptBox[\"v\", \n",
       "\n",
       " \n",
       ">                        TagBox[RowBox[{\"(\", RowBox[{\"1\", \",\", \"0\"}], \")\"}], \n",
       "\n",
       " \n",
       ">                         Derivative], Rule[MultilineFunction, None]], \"(\", \n",
       "\n",
       " \n",
       ">                       RowBox[{\"x\", \",\", \"y\"}], \")\"}]}], \" \", \n",
       "\n",
       " \n",
       ">                   RowBox[{\"∂\", RowBox[{SuperscriptBox[\"v\", \n",
       "\n",
       " \n",
       ">                        TagBox[RowBox[{\"(\", RowBox[{\"0\", \",\", \"1\"}], \")\"}], \n",
       "\n",
       " \n",
       ">                         Derivative], Rule[MultilineFunction, None]], \"(\", \n",
       "\n",
       " \n",
       ">                       RowBox[{\"x\", \",\", \"y\"}], \")\"}]}]}], \n",
       "\n",
       " \n",
       ">                 Rule[MultilineFunction, None]], \" \", \n",
       "\n",
       " \n",
       ">                FractionBox[RowBox[{SuperscriptBox[\"∂\", \"2\"], \n",
       "\n",
       " \n",
       ">                   RowBox[{\"v\", \"(\", RowBox[{\"x\", \",\", \"y\"}], \")\"}]}], \n",
       "\n",
       " \n",
       ">                 RowBox[{RowBox[{\"∂\", \"x\"}], \" \", RowBox[{\"∂\", \"y\"}]}], \n",
       "\n",
       " \n",
       ">                 Rule[MultilineFunction, None]]}]}], \"\", \"0\"}]}], \"}\"}],\\\n",
       " \n",
       ">    TraditionalForm]\n"
      ]
     },
     "execution_count": 8,
     "metadata": {
      "text/html": [],
      "text/plain": []
     },
     "output_type": "execute_result"
    }
   ],
   "source": [
    "Clear[L, u, v, x, y];\n",
    "EulerEquations[L[x, y, u[x,y], D[u[x,y],x], D[u[x,y],y], v[x,y], D[v[x,y],x], D[v[x,y],y]],\n",
    "{u[x,y],v[x,y]}, {x,y}]//pdConv"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 3.2 参数形式的变分问题\n",
    "前面我们一直假定容许函数或者逗留函数都是能用显式表示的，如 $x=x(t), u=u(x,y,z,t)$. \n",
    "但复杂的曲线（面）通常不便于用显式表示. 像等周问题中的闭曲线一定不是单值的函数，所以显式表示就不太合适. \n",
    "而用参数表示时求解该问题就会更加便利. \n",
    "为了扩大变分法的适用范围，这一节我们将讨论容许函数用参数式表示的一般情形. \n",
    "\n",
    "考虑泛函\n",
    "$\n",
    "\\mathcal{A}[y] = \\int_{x_0}^{x_1} L(x,y,y')\\mathrm{d}x\n",
    "$\n",
    "的极值问题. 若用参数形式 \n",
    "$\n",
    "x=x(t), y=y(t)\n",
    "$\n",
    "求解，那么原来的泛函可改写为\n",
    "$$\n",
    "\\mathcal{A}[y,x] = \\int_{t_0}^{t_1} L\\left(x(t),y(t),\\frac{\\dot{y}(t)}{\\dot{x}(t)}\\right) \n",
    "\\dot{x}(t)\\mathrm{d}t. \n",
    "$$\n",
    "我们记改写后泛函的被积函数为依赖两个函数的泛函 $\\psi(x,y,\\dot{x},\\dot{y})$. \n",
    "由于变换后的被积函数 $\\psi$ 不显含新的自变量 $t$. 所以尽管自变函数以参数表示形式的泛函有两个欧拉方程，\n",
    "但是这两个方程本质上都是一阶微分方程，也就对应了原来作为二阶微分方程的一个欧拉方程了. \n",
    "而且对于 $\\dot{x},\\dot{y}$ 是**一次齐次**函数，即满足条件\n",
    "$$\n",
    "\\psi(x,y,k\\dot{x},k\\dot{y}) = k\\psi(x,y,\\dot{x},\\dot{y}). \n",
    "$$ \n",
    "为了证明被积函数 $\\psi$ 仅依赖于曲线本身，而与参数表示形式无关. 我们引入参数变换 \n",
    "$t=\\varphi(\\tau)\\;\\tau\\in[\\tau_0,\\tau_1]$，则 $\\mathrm{d}t=\\frac{\\mathrm{d}t}{\\mathrm{d}\\tau}\n",
    "\\mathrm{d}\\tau=\\varphi'(\\tau)\\mathrm{d}\\tau$. 利用 $\\psi$ 对 $\\dot{x},\\dot{y}$ 的齐次性，我们有\n",
    "$$\n",
    "\\begin{aligned}\n",
    "\\int_{\\tau_0}^{\\tau_1} &\\psi\\left(x,y,\\frac{\\mathrm{d}x}{\\mathrm{d}\\tau},\n",
    "\\frac{\\mathrm{d}y}{\\mathrm{d}\\tau}\\right) \\mathrm{d}\\tau\\\\\n",
    "=& \\int_{\\tau_0}^{\\tau_1} \\psi\\left(x,y,\\dot{x}\\frac{\\mathrm{d}t}{\\mathrm{d}\\tau},\n",
    "\\dot{y}\\frac{\\mathrm{d}t}{\\mathrm{d}\\tau}\\right) \\mathrm{d}\\tau\\\\\n",
    "=& \\int_{\\tau_0}^{\\tau_1} \\psi\\left(x,y,\\dot{x},\\dot{y}\\right) \n",
    "\\frac{\\mathrm{d}t}{\\mathrm{d}\\tau}\\cdot\\mathrm{d}\\tau\\\\\n",
    "=& \\int_{t_0}^{t_1} \\psi(x,y,k\\dot{x},k\\dot{y}) (t)\\mathrm{d}t\n",
    "\\end{aligned}\n",
    "$$\n",
    "这样我们就证明了泛函的值与参数表达式无关，而依赖于参数式所代表的曲线. \n",
    "\n",
    "因此，我们能想到参数化前后的泛函对应的两种欧拉方程应该是等价的. \n",
    "而参数形式有很多种，所以我们不能确定唯一的参数形式，而且它们也不会是独立的. \n",
    "\n",
    "根据欧拉齐次函数定理，对 $\\psi$ 的齐次关系式两边对参数 $k$ 求导，再令 $k=1$，得到\n",
    "$$\n",
    "\\dot{x}\\psi_{\\dot{x}}+\\dot{y}\\psi_{\\dot{y}}=\\psi\n",
    "$$"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2021-02-02T16:47:04+08:00",
     "start_time": "2021-02-02T08:47:04.191Z"
    },
    "run_control": {
     "marked": true
    }
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div><img alt=\"Output\" src=\"\"></div>"
      ],
      "text/plain": [
       "FormBox[RowBox[{RowBox[{RowBox[{FractionBox[RowBox[{\"∂\", \n",
       "\n",
       " \n",
       ">               RowBox[{\"x\", \"(\", \"t\", \")\"}]}], RowBox[{\"∂\", \"t\"}], \n",
       "\n",
       " \n",
       ">             Rule[MultilineFunction, None]], \" \", \n",
       "         FractionBox[RowBox[{\"∂\", \n",
       "\n",
       " \n",
       ">               RowBox[{\"ψ\", \"(\", RowBox[{RowBox[{\"x\", \"(\", \"t\", \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                   RowBox[{\"y\", \"(\", \"t\", \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                   RowBox[{SuperscriptBox[\"x\", \"′\", Rule[MultilineFunction, None]], \n",
       "\n",
       " \n",
       ">                     \"(\", \"t\", \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                   RowBox[{SuperscriptBox[\"y\", \"′\", Rule[MultilineFunction, None]], \n",
       "\n",
       " \n",
       ">                     \"(\", \"t\", \")\"}]}], \")\"}]}], \n",
       "\n",
       " \n",
       ">             RowBox[{\"∂\", RowBox[{SuperscriptBox[\"x\", \"′\", \n",
       "\n",
       " \n",
       ">                  Rule[MultilineFunction, None]], \"(\", \"t\", \")\"}]}], \n",
       "\n",
       " \n",
       ">             Rule[MultilineFunction, None]]}], \"+\", \n",
       "\n",
       " \n",
       ">          RowBox[{FractionBox[RowBox[{\"∂\", RowBox[{\"y\", \"(\", \"t\", \")\"}]}], \n",
       "\n",
       " \n",
       ">             RowBox[{\"∂\", \"t\"}], Rule[MultilineFunction, None]], \" \", \n",
       "\n",
       " \n",
       ">            FractionBox[RowBox[{\"∂\", RowBox[{\"ψ\", \"(\", \n",
       "\n",
       " \n",
       ">                 RowBox[{RowBox[{\"x\", \"(\", \"t\", \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                   RowBox[{\"y\", \"(\", \"t\", \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                   RowBox[{SuperscriptBox[\"x\", \"′\", Rule[MultilineFunction, None]], \n",
       "\n",
       " \n",
       ">                     \"(\", \"t\", \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                   RowBox[{SuperscriptBox[\"y\", \"′\", Rule[MultilineFunction, None]], \n",
       "\n",
       " \n",
       ">                     \"(\", \"t\", \")\"}]}], \")\"}]}], \n",
       "\n",
       " \n",
       ">             RowBox[{\"∂\", RowBox[{SuperscriptBox[\"y\", \"′\", \n",
       "\n",
       " \n",
       ">                  Rule[MultilineFunction, None]], \"(\", \"t\", \")\"}]}], \n",
       "\n",
       " \n",
       ">             Rule[MultilineFunction, None]]}]}], \"\", \n",
       "\n",
       " \n",
       ">        RowBox[{\"ψ\", \"(\", RowBox[{RowBox[{\"x\", \"(\", \"t\", \")\"}], \",\", \n",
       "\n",
       " \n",
       ">            RowBox[{\"y\", \"(\", \"t\", \")\"}], \",\", \n",
       "\n",
       " \n",
       ">            FractionBox[RowBox[{\"∂\", RowBox[{\"x\", \"(\", \"t\", \")\"}]}], \n",
       "\n",
       " \n",
       ">             RowBox[{\"∂\", \"t\"}], Rule[MultilineFunction, None]], \",\", \n",
       "\n",
       " \n",
       ">            FractionBox[RowBox[{\"∂\", RowBox[{\"y\", \"(\", \"t\", \")\"}]}], RowBox[{\"∂\",\\\n",
       " \n",
       ">    \"t\"}], \n",
       "          Rule[MultilineFunction, None]]}], \")\"}]}], TraditionalForm]\n"
      ]
     },
     "execution_count": 17,
     "metadata": {
      "text/html": [],
      "text/plain": []
     },
     "output_type": "execute_result"
    }
   ],
   "source": [
    "Block[\n",
    "{\\[Psi], x, y, xdot, ydot, t, k, eqn},\n",
    "xdot[t_]:=D[x[t],t];\n",
    "ydot[t_]:=D[y[t],t];\n",
    "eqn = \\[Psi][x[t], y[t], k xdot[t], k ydot[t]] == k \\[Psi][x[t], y[t], xdot[t], ydot[t]];\n",
    "D[eqn,k]/.k->1//pdConv\n",
    "]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "分别对上式中 $\\psi$ 的参数 $x, y, \\dot{x}, \\dot{y}$ 求偏导，得到恒等式\n",
    "$$\n",
    "\\begin{matrix}\n",
    "\\psi_x=\\dot{x}\\psi_{x\\dot{x}}+\\dot{y}\\psi_{x\\dot{y}}, \n",
    "&\\psi_y=\\dot{x}\\psi_{y\\dot{x}}+\\dot{y}\\psi_{y\\dot{y}},\\\\\n",
    "\\dot{x}\\psi_{\\dot{x}\\dot{x}}+\\dot{y}\\psi_{\\dot{x}\\dot{y}}=0, \n",
    "&\\dot{x}\\psi_{\\dot{x}\\dot{y}}+\\dot{y}\\psi_{\\dot{y}\\dot{y}}=0.\n",
    "\\end{matrix}\n",
    "$$"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2021-02-02T16:47:54+08:00",
     "start_time": "2021-02-02T08:47:53.878Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div><img alt=\"Output\" src=\"\"></div>"
      ],
      "text/plain": [
       "FormBox[RowBox[{\"{\", RowBox[{RowBox[{FractionBox[RowBox[{\"∂\", \n",
       "\n",
       " \n",
       ">               RowBox[{\"ψ\", \"(\", RowBox[{RowBox[{\"x\", \"(\", \"t\", \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                   RowBox[{\"y\", \"(\", \"t\", \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                   RowBox[{SuperscriptBox[\"x\", \"′\", Rule[MultilineFunction, None]], \n",
       "\n",
       " \n",
       ">                     \"(\", \"t\", \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                   RowBox[{SuperscriptBox[\"y\", \"′\", Rule[MultilineFunction, None]], \n",
       "\n",
       " \n",
       ">                     \"(\", \"t\", \")\"}]}], \")\"}]}], \n",
       "\n",
       " \n",
       ">             RowBox[{\"∂\", RowBox[{\"x\", \"(\", \"t\", \")\"}]}], \n",
       "\n",
       " \n",
       ">             Rule[MultilineFunction, None]], \"\", \n",
       "\n",
       " \n",
       ">            RowBox[{RowBox[{FractionBox[RowBox[{\"∂\", RowBox[{\"x\", \"(\", \"t\", \")\"}]}], \n",
       "\n",
       " \n",
       ">                 RowBox[{\"∂\", \"t\"}], Rule[MultilineFunction, None]], \" \", \n",
       "\n",
       " \n",
       ">                FractionBox[RowBox[{SuperscriptBox[\"∂\", \"2\"], \n",
       "\n",
       " \n",
       ">                   RowBox[{\"ψ\", \"(\", \n",
       "\n",
       " \n",
       ">                     RowBox[{RowBox[{\"x\", \"(\", \"t\", \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{\"y\", \"(\", \"t\", \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{SuperscriptBox[\"x\", \"′\", \n",
       "\n",
       " \n",
       ">                          Rule[MultilineFunction, None]], \"(\", \"t\", \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{SuperscriptBox[\"y\", \"′\", \n",
       "\n",
       " \n",
       ">                          Rule[MultilineFunction, None]], \"(\", \"t\", \")\"}]}], \")\"}]}], \n",
       "\n",
       " \n",
       ">                 RowBox[{RowBox[{\"∂\", RowBox[{\"x\", \"(\", \"t\", \")\"}]}], \" \", \n",
       "\n",
       " \n",
       ">                   RowBox[{\"∂\", RowBox[{SuperscriptBox[\"x\", \"′\", \n",
       "\n",
       " \n",
       ">                        Rule[MultilineFunction, None]], \"(\", \"t\", \")\"}]}]}], \n",
       "\n",
       " \n",
       ">                 Rule[MultilineFunction, None]]}], \"+\", \n",
       "\n",
       " \n",
       ">              RowBox[{FractionBox[RowBox[{\"∂\", RowBox[{\"y\", \"(\", \"t\", \")\"}]}], \n",
       "\n",
       " \n",
       ">                 RowBox[{\"∂\", \"t\"}], Rule[MultilineFunction, None]], \" \", \n",
       "\n",
       " \n",
       ">                FractionBox[RowBox[{SuperscriptBox[\"∂\", \"2\"], \n",
       "\n",
       " \n",
       ">                   RowBox[{\"ψ\", \"(\", \n",
       "\n",
       " \n",
       ">                     RowBox[{RowBox[{\"x\", \"(\", \"t\", \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{\"y\", \"(\", \"t\", \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{SuperscriptBox[\"x\", \"′\", \n",
       "\n",
       " \n",
       ">                          Rule[MultilineFunction, None]], \"(\", \"t\", \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{SuperscriptBox[\"y\", \"′\", \n",
       "\n",
       " \n",
       ">                          Rule[MultilineFunction, None]], \"(\", \"t\", \")\"}]}], \")\"}]}], \n",
       "\n",
       " \n",
       ">                 RowBox[{RowBox[{\"∂\", RowBox[{\"x\", \"(\", \"t\", \")\"}]}], \" \", \n",
       "\n",
       " \n",
       ">                   RowBox[{\"∂\", RowBox[{SuperscriptBox[\"y\", \"′\", \n",
       "\n",
       " \n",
       ">                        Rule[MultilineFunction, None]], \"(\", \"t\", \")\"}]}]}], \n",
       "\n",
       " \n",
       ">                 Rule[MultilineFunction, None]]}]}]}], \",\", \n",
       "\n",
       " \n",
       ">          RowBox[{FractionBox[RowBox[{\"∂\", \n",
       "\n",
       " \n",
       ">               RowBox[{\"ψ\", \"(\", RowBox[{RowBox[{\"x\", \"(\", \"t\", \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                   RowBox[{\"y\", \"(\", \"t\", \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                   RowBox[{SuperscriptBox[\"x\", \"′\", Rule[MultilineFunction, None]], \n",
       "\n",
       " \n",
       ">                     \"(\", \"t\", \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                   RowBox[{SuperscriptBox[\"y\", \"′\", Rule[MultilineFunction, None]], \n",
       "\n",
       " \n",
       ">                     \"(\", \"t\", \")\"}]}], \")\"}]}], \n",
       "\n",
       " \n",
       ">             RowBox[{\"∂\", RowBox[{\"y\", \"(\", \"t\", \")\"}]}], \n",
       "\n",
       " \n",
       ">             Rule[MultilineFunction, None]], \"\", \n",
       "\n",
       " \n",
       ">            RowBox[{RowBox[{FractionBox[RowBox[{\"∂\", RowBox[{\"x\", \"(\", \"t\", \")\"}]}], \n",
       "\n",
       " \n",
       ">                 RowBox[{\"∂\", \"t\"}], Rule[MultilineFunction, None]], \" \", \n",
       "\n",
       " \n",
       ">                FractionBox[RowBox[{SuperscriptBox[\"∂\", \"2\"], \n",
       "\n",
       " \n",
       ">                   RowBox[{\"ψ\", \"(\", \n",
       "\n",
       " \n",
       ">                     RowBox[{RowBox[{\"x\", \"(\", \"t\", \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{\"y\", \"(\", \"t\", \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{SuperscriptBox[\"x\", \"′\", \n",
       "\n",
       " \n",
       ">                          Rule[MultilineFunction, None]], \"(\", \"t\", \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{SuperscriptBox[\"y\", \"′\", \n",
       "\n",
       " \n",
       ">                          Rule[MultilineFunction, None]], \"(\", \"t\", \")\"}]}], \")\"}]}], \n",
       "\n",
       " \n",
       ">                 RowBox[{RowBox[{\"∂\", RowBox[{\"y\", \"(\", \"t\", \")\"}]}], \" \", \n",
       "\n",
       " \n",
       ">                   RowBox[{\"∂\", RowBox[{SuperscriptBox[\"x\", \"′\", \n",
       "\n",
       " \n",
       ">                        Rule[MultilineFunction, None]], \"(\", \"t\", \")\"}]}]}], \n",
       "\n",
       " \n",
       ">                 Rule[MultilineFunction, None]]}], \"+\", \n",
       "\n",
       " \n",
       ">              RowBox[{FractionBox[RowBox[{\"∂\", RowBox[{\"y\", \"(\", \"t\", \")\"}]}], \n",
       "\n",
       " \n",
       ">                 RowBox[{\"∂\", \"t\"}], Rule[MultilineFunction, None]], \" \", \n",
       "\n",
       " \n",
       ">                FractionBox[RowBox[{SuperscriptBox[\"∂\", \"2\"], \n",
       "\n",
       " \n",
       ">                   RowBox[{\"ψ\", \"(\", \n",
       "\n",
       " \n",
       ">                     RowBox[{RowBox[{\"x\", \"(\", \"t\", \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{\"y\", \"(\", \"t\", \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{SuperscriptBox[\"x\", \"′\", \n",
       "\n",
       " \n",
       ">                          Rule[MultilineFunction, None]], \"(\", \"t\", \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{SuperscriptBox[\"y\", \"′\", \n",
       "\n",
       " \n",
       ">                          Rule[MultilineFunction, None]], \"(\", \"t\", \")\"}]}], \")\"}]}], \n",
       "\n",
       " \n",
       ">                 RowBox[{RowBox[{\"∂\", RowBox[{\"y\", \"(\", \"t\", \")\"}]}], \" \", \n",
       "\n",
       " \n",
       ">                   RowBox[{\"∂\", RowBox[{SuperscriptBox[\"y\", \"′\", \n",
       "\n",
       " \n",
       ">                        Rule[MultilineFunction, None]], \"(\", \"t\", \")\"}]}]}], \n",
       "\n",
       " \n",
       ">                 Rule[MultilineFunction, None]]}]}]}], \",\", \n",
       "\n",
       " \n",
       ">          RowBox[{RowBox[{RowBox[{FractionBox[RowBox[{\"∂\", \n",
       "\n",
       " \n",
       ">                   RowBox[{\"y\", \"(\", \"t\", \")\"}]}], RowBox[{\"∂\", \"t\"}], \n",
       "\n",
       " \n",
       ">                 Rule[MultilineFunction, None]], \" \", \n",
       "\n",
       " \n",
       ">                FractionBox[RowBox[{SuperscriptBox[\"∂\", \"2\"], \n",
       "\n",
       " \n",
       ">                   RowBox[{\"ψ\", \"(\", \n",
       "\n",
       " \n",
       ">                     RowBox[{RowBox[{\"x\", \"(\", \"t\", \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{\"y\", \"(\", \"t\", \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{SuperscriptBox[\"x\", \"′\", \n",
       "\n",
       " \n",
       ">                          Rule[MultilineFunction, None]], \"(\", \"t\", \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{SuperscriptBox[\"y\", \"′\", \n",
       "\n",
       " \n",
       ">                          Rule[MultilineFunction, None]], \"(\", \"t\", \")\"}]}], \")\"}]}], \n",
       "\n",
       " \n",
       ">                 RowBox[{RowBox[{\"∂\", \n",
       "\n",
       " \n",
       ">                     RowBox[{SuperscriptBox[\"x\", \"′\", \n",
       "\n",
       " \n",
       ">                        Rule[MultilineFunction, None]], \"(\", \"t\", \")\"}]}], \" \", \n",
       "\n",
       " \n",
       ">                   RowBox[{\"∂\", RowBox[{SuperscriptBox[\"y\", \"′\", \n",
       "\n",
       " \n",
       ">                        Rule[MultilineFunction, None]], \"(\", \"t\", \")\"}]}]}], \n",
       "\n",
       " \n",
       ">                 Rule[MultilineFunction, None]]}], \"+\", \n",
       "\n",
       " \n",
       ">              RowBox[{FractionBox[RowBox[{\"∂\", RowBox[{\"x\", \"(\", \"t\", \")\"}]}], \n",
       "\n",
       " \n",
       ">                 RowBox[{\"∂\", \"t\"}], Rule[MultilineFunction, None]], \" \", \n",
       "\n",
       " \n",
       ">                FractionBox[RowBox[{SuperscriptBox[\"∂\", \"2\"], \n",
       "\n",
       " \n",
       ">                   RowBox[{\"ψ\", \"(\", \n",
       "\n",
       " \n",
       ">                     RowBox[{RowBox[{\"x\", \"(\", \"t\", \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{\"y\", \"(\", \"t\", \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{SuperscriptBox[\"x\", \"′\", \n",
       "\n",
       " \n",
       ">                          Rule[MultilineFunction, None]], \"(\", \"t\", \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{SuperscriptBox[\"y\", \"′\", \n",
       "\n",
       " \n",
       ">                          Rule[MultilineFunction, None]], \"(\", \"t\", \")\"}]}], \")\"}]}], \n",
       "\n",
       " \n",
       ">                 RowBox[{\"∂\", SuperscriptBox[RowBox[{SuperscriptBox[\"x\", \"′\", \n",
       "\n",
       " \n",
       ">                       Rule[MultilineFunction, None]], \"(\", \"t\", \")\"}], \"2\"]}], \n",
       "\n",
       " \n",
       ">                 Rule[MultilineFunction, None]]}]}], \"\", \"0\"}], \",\", \n",
       "\n",
       " \n",
       ">          RowBox[{RowBox[{RowBox[{FractionBox[RowBox[{\"∂\", \n",
       "\n",
       " \n",
       ">                   RowBox[{\"x\", \"(\", \"t\", \")\"}]}], RowBox[{\"∂\", \"t\"}], \n",
       "\n",
       " \n",
       ">                 Rule[MultilineFunction, None]], \" \", \n",
       "\n",
       " \n",
       ">                FractionBox[RowBox[{SuperscriptBox[\"∂\", \"2\"], \n",
       "\n",
       " \n",
       ">                   RowBox[{\"ψ\", \"(\", \n",
       "\n",
       " \n",
       ">                     RowBox[{RowBox[{\"x\", \"(\", \"t\", \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{\"y\", \"(\", \"t\", \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{SuperscriptBox[\"x\", \"′\", \n",
       "\n",
       " \n",
       ">                          Rule[MultilineFunction, None]], \"(\", \"t\", \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{SuperscriptBox[\"y\", \"′\", \n",
       "\n",
       " \n",
       ">                          Rule[MultilineFunction, None]], \"(\", \"t\", \")\"}]}], \")\"}]}], \n",
       "\n",
       " \n",
       ">                 RowBox[{RowBox[{\"∂\", \n",
       "\n",
       " \n",
       ">                     RowBox[{SuperscriptBox[\"x\", \"′\", \n",
       "\n",
       " \n",
       ">                        Rule[MultilineFunction, None]], \"(\", \"t\", \")\"}]}], \" \", \n",
       "\n",
       " \n",
       ">                   RowBox[{\"∂\", RowBox[{SuperscriptBox[\"y\", \"′\", \n",
       "\n",
       " \n",
       ">                        Rule[MultilineFunction, None]], \"(\", \"t\", \")\"}]}]}], \n",
       "\n",
       " \n",
       ">                 Rule[MultilineFunction, None]]}], \"+\", \n",
       "\n",
       " \n",
       ">              RowBox[{FractionBox[RowBox[{\"∂\", RowBox[{\"y\", \"(\", \"t\", \")\"}]}], \n",
       "\n",
       " \n",
       ">                 RowBox[{\"∂\", \"t\"}], Rule[MultilineFunction, None]], \" \", \n",
       "\n",
       " \n",
       ">                FractionBox[RowBox[{SuperscriptBox[\"∂\", \"2\"], \n",
       "\n",
       " \n",
       ">                   RowBox[{\"ψ\", \"(\", \n",
       "\n",
       " \n",
       ">                     RowBox[{RowBox[{\"x\", \"(\", \"t\", \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{\"y\", \"(\", \"t\", \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{SuperscriptBox[\"x\", \"′\", \n",
       "\n",
       " \n",
       ">                          Rule[MultilineFunction, None]], \"(\", \"t\", \")\"}], \",\", \n",
       "\n",
       " \n",
       ">                       RowBox[{SuperscriptBox[\"y\", \"′\", \n",
       "\n",
       " \n",
       ">                          Rule[MultilineFunction, None]], \"(\", \"t\", \")\"}]}], \")\"}]}], \n",
       "\n",
       " \n",
       ">                 RowBox[{\"∂\", SuperscriptBox[RowBox[{SuperscriptBox[\"y\", \"′\", \n",
       "\n",
       " \n",
       ">                       Rule[MultilineFunction, None]], \"(\", \"t\", \")\"}], \"2\"]}], \n",
       "\n",
       " \n",
       ">                 Rule[MultilineFunction, None]]}]}], \"\", \"0\"}]}], \"}\"}],\\\n",
       " \n",
       ">    TraditionalForm]\n"
      ]
     },
     "execution_count": 19,
     "metadata": {
      "text/html": [],
      "text/plain": []
     },
     "output_type": "execute_result"
    }
   ],
   "source": [
    "Block[\n",
    "{\\[Psi], x, y, xdot, ydot, t, k, eqn, eqn1, s},\n",
    "(*simp[expr_] := NestList[Simplify, expr, 1];*)\n",
    "xdot[t_]:=D[x[t],t];\n",
    "ydot[t_]:=D[y[t],t];\n",
    "eqn = \\[Psi][x[t], y[t], k xdot[t], k ydot[t]] == k \\[Psi][x[t], y[t], xdot[t], ydot[t]];\n",
    "eqn1 = D[eqn,k]/.k->1;\n",
    "Table[D[eqn1, s],{s,{x[t],y[t],xdot[t],ydot[t]}}]//Simplify//Flatten//pdConv//TableForm\n",
    "]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "由此得到一个比例关系\n",
    "$$\n",
    "\\frac{\\psi_{\\dot{x}\\dot{x}}}{\\dot{y}^2} = - \n",
    "\\frac{\\psi_{\\dot{x}\\dot{y}}}{\\dot{x}\\dot{y}} = \n",
    "\\frac{\\psi_{\\dot{y}\\dot{y}}}{\\dot{x}^2},\n",
    "$$\n",
    "再设它们的比值为 $k$ ，得到 $\\psi_{\\dot{x}\\dot{x}}=k\\dot{y}^2$, \n",
    "$\\psi_{\\dot{x}\\dot{y}}=-k\\dot{x}\\dot{y}$, $\\psi_{\\dot{y}\\dot{y}}=k\\dot{x}^2$，\n",
    "我们再由上面的恒等式，得到\n",
    "$$\\require{cancel}\n",
    "\\begin{aligned}\n",
    "\\psi_x - \\frac{\\mathrm{d}}{\\mathrm{d}t}\\psi_{\\dot{x}} =&\n",
    "\\left(\\cancel{\\dot{x}\\psi_{x\\dot{x}}}+\\dot{y}\\psi_{x\\dot{y}}\\right) - \n",
    "\\left(\\cancel{\\dot{x}\\psi_{x\\dot{x}}}+\\dot{y}\\psi_{\\dot{x}y}+\n",
    "\\ddot{x}\\cancelto{k\\dot{y}^2}{\\psi_{\\dot{x}\\dot{x}}}+\n",
    "\\ddot{y}\\cancelto{-k\\dot{x}\\dot{y}}{\\psi_{\\dot{x}\\dot{y}}}\\right)\\\\\n",
    "&=\\dot{y}\\left[\\psi_{x\\dot{y}}-\\psi_{\\dot{x}y}+\\left(\\dot{x}\\ddot{y}-\\dot{y}\\ddot{x}\\right)\n",
    "k\\right] = 0. \n",
    "\\end{aligned}\n",
    "$$\n",
    "类似地，有\n",
    "$$\\require{cancel}\n",
    "\\begin{aligned}\n",
    "\\psi_y - \\frac{\\mathrm{d}}{\\mathrm{d}t}\\psi_{\\dot{y}} =&\n",
    "\\left(\\cancel{\\dot{x}\\psi_{y\\dot{x}}}+\\dot{y}\\psi_{y\\dot{y}}\\right) - \n",
    "\\left(\\cancel{\\dot{x}\\psi_{x\\dot{y}}}+\\dot{y}\\psi_{y\\dot{y}}+\n",
    "\\ddot{x}\\cancelto{-k\\dot{x}\\dot{y}}{\\psi_{\\dot{x}\\dot{y}}}+\n",
    "\\ddot{y}\\cancelto{k\\dot{x}^2}{\\psi_{\\dot{y}\\dot{y}}}\\right)\\\\\n",
    "&=-\\dot{x}\\left[\\psi_{x\\dot{y}}-\\psi_{\\dot{x}y}+\\left(\\dot{x}\\ddot{y}-\\dot{y}\\ddot{x}\\right)\n",
    "k\\right] = 0. \n",
    "\\end{aligned}\n",
    "$$\n",
    "因为 $\\dot{x}$ 和 $\\dot{y}$ 不能同时为零，所以宗量参数化的泛函对应的欧拉方程组等价于\n",
    "【欧拉方程的魏尔斯特拉斯形式】\n",
    "$$\n",
    "\\psi_{x\\dot{y}}-\\psi_{\\dot{x}y}+\\left(\\dot{x}\\ddot{y}-\\dot{y}\\ddot{x}\\right)k = 0\n",
    "$$\n",
    "对此我们还能得到两个欧拉方程的关系式：\n",
    "$$\n",
    "\\dot{x}\\left(\\psi_x - \\frac{\\mathrm{d}}{\\mathrm{d}t}\\psi_{\\dot{x}}\\right)+\n",
    "\\dot{y}\\left(\\psi_y - \\frac{\\mathrm{d}}{\\mathrm{d}t}\\psi_{\\dot{y}}\\right)=0\n",
    "$$"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 3.3 条件极值的变分问题\n",
    "    带约束(Constraints)的变分问题\n",
    "所谓条件极值变分问题是这样的问题，其中所求的是泛函 $\\mathcal{A}$ 的极值，并且\n",
    "在泛函 $\\mathcal{A}$ 所依赖的函数上还加上了一些约束. \n",
    "\n",
    "前面在一元泛函的部分已经讨论过了最简单的等周问题. 这里将介绍其多元泛函的推广，以及其他两种约束条件的处理方法. "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 3.3.1 积分型约束条件\n",
    "    等周问题(The isoperimetric problem)\n",
    "对于一般情形的等周问题，即泛函依赖多个函数，等周条件也是多个，\n",
    "我们有如下结论. \n",
    "\n",
    "假设泛函\n",
    "$$\n",
    "\\mathcal{A}[y_1(\\cdot),\\cdots,y_n(\\cdot)]=\\int_{x_1}^{x_2} \n",
    "L(x,y_1,\\cdots,y_n,y_1',\\cdots,y_n')\\mathrm{~d}x\n",
    "$$\n",
    "的容许函数满足固定边界条件：\n",
    "$$\n",
    "y_i(x_1)=y_{i1},\\;y_i(x_2)=y_{i2},\\;(i=1,2,\\cdots,n)\n",
    "$$\n",
    "和等周条件：\n",
    "$$\n",
    "\\int_{x_1}^{x_2} G_j(x,y_1,\\cdots,y_n,y_1',\\cdots,y_n')\\mathrm{~d}x=C_j\n",
    "\\quad(j=1,2,\\cdots,m)\n",
    "$$\n",
    "\n",
    "一般问题就是求函数组 $y_i(x)\\;(i=1,2,\\cdots,n)$，它们满足边界条件和等周条件，并使泛函取得极值. 求解的方法与最简变分问题的情形类似. \n",
    "先构造泛函\n",
    "$$\n",
    "\\int_{x_1}^{x_2} \\left(L+\\sum_{j=1}^m\\lambda_j G_j\\right)\\mathrm{~d}x \n",
    "= \\int_{x_1}^{x_2} H\\mathrm{~d}x;\n",
    "$$\n",
    "然后建立相应的微分方程组\n",
    "$$\n",
    "\\frac{\\partial H}{\\partial y_i} - \\frac{\\mathrm{d}}{\\mathrm{d}x}\n",
    "\\left(\\frac{\\partial H}{\\partial y_i'}\\right)=0;\\quad (i=1,2,\\cdots,n)\n",
    "$$\n",
    "解这个微分方程组，求得含 $2n$ 个任意常数及 $m$ 个乘子 \n",
    "$\\lambda_1,\\cdots,\\lambda_m$ 的通解；\n",
    "由 $2n$ 个边界条件及 $m$ 个等周条件确定这些常数；\n",
    "这样就求得了逗留函数 $y_1(x), y_2(x), \\cdots, y_n(x)$. "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 3.3.2 整型约束条件\n",
    "    短程线问题\n",
    "条件变分问题中的条件，可以有不同的形式，如前一节的附加条件是以**积分为定值**的形式给出，\n",
    "而本节短程线问题中的附加条件都是以**隐函数**的形式出现的. \n",
    "\n",
    "我们先研究最简单的情形. \n",
    "\n",
    "在已知的曲面 $$G(x,y,z)=0$$ 上，求一条空间曲线\n",
    "$$\n",
    "\\left\\{\\begin{aligned}\n",
    "y&=y(x)\\\\\n",
    "z&=z(x)\n",
    "\\end{aligned}\\right.\n",
    "\\quad x\\in(x_1,x_2),\n",
    "$$ 使得泛函 $$\n",
    "\\mathcal{A}[y(\\cdot),z(\\cdot)]=\\int_{x_1}^{x_2} \n",
    "L(x,y,z,y'z')\\mathrm{~d}x\n",
    "$$ 取极小值，这个问题的解由下面的定理给出. \n",
    "\n",
    "**定理**【短程线问题】\n",
    "如果曲线 $y=y(x)\\quad z=z(x)$ 在位于曲面 $G(x,y,z)=0$ 上的曲线集合中，它给出泛函 \n",
    "$\\mathcal{A}[y(\\cdot),z(\\cdot)]$ 的极值，并且在这一曲线上，没有一个这样的点，使 $G_y$ 和 $G_z$ \n",
    "在这点上同时为零. 则存在这样的函数 $\\lambda(x)$，使得由 $y,z$ 确定的空间曲线是泛函 $$\n",
    "\\int_{x_1}^{x_2} \\left[L+\\lambda(x) G\\right]\\mathrm{~d}x \n",
    "= \\int_{x_1}^{x_2} H\\mathrm{~d}x\n",
    "$$ 的极值曲线，即曲线 $y=y(x), z=z(x)$ 满足微分方程组 $$\n",
    "\\frac{\\partial H}{\\partial y} - \\frac{\\mathrm{d}}{\\mathrm{d}x}\\left(\\frac{\\partial H}{\\partial y'}\\right)=0\\ \\text{、}\\qquad\n",
    "\\frac{\\partial H}{\\partial z} - \\frac{\\mathrm{d}}{\\mathrm{d}x}\\left(\\frac{\\partial H}{\\partial z'}\\right)=0\n",
    "$$\n",
    "\n",
    "**证明**\n",
    "设 $y(x)$ 和 $z(x)$ 为所求. 因为它们满足 $G(x,y,z)=0$，\n",
    "故 $y(x)$ 与 $z(x)$ 不是独立的. 当 $\\partial G/\\partial z\\ne0$ 时，由 $G(x,y,z)=0$ 可解出 $z=g(x,y)$ ，且 $z'$\n",
    "可看作 $x,y,y'$ 的函数. 利用关系式：$$\n",
    "G_x+y'G_y+z'G_z=0, \n",
    "$$ 或 $$\n",
    "z'=y'\\frac{\\partial g}{\\partial y}+\\frac{\\partial g}{\\partial x},\n",
    "$$ 在 $L(x,y,z,y',z')$ 中消去 $z$ 和 $z'$，得到\n",
    "$$\\begin{aligned}\n",
    "L(x,y,z,y',z')&=L\\left(x,y,g(x,y),y',\\frac{\\partial g}{\\partial x}+y'\\frac{\\partial g}{\\partial y}\\right)\\\\\n",
    "&=L_1(x,y,y'),\\end{aligned}$$\n",
    "这样，满足隐函数形式的约束条件的泛函 \n",
    "$\\mathcal{A}[y(\\cdot),z(\\cdot)]$ 的最小问题就化为\n",
    "$$\n",
    "\\mathcal{J}[y(\\cdot)]=\n",
    "\\int_{x_1}^{x_2} L_1(x,y,y')\\mathrm{~d}x=\\min.\n",
    "$$\n",
    "因此，$y$ 必须满足 $\\mathcal{J}[y(\\cdot)]$ 的欧拉方程，即 $$\n",
    "\\frac{\\mathrm{d}}{\\mathrm{d}x}\\left[L_{y'}+L_{z'}\n",
    "\\frac{\\partial g}{\\partial y}\\right]-\\left[L_{y}+L_{z}\n",
    "\\frac{\\partial g}{\\partial y}+L_{z'}\\left(\\frac{\\partial^2 g}\n",
    "{\\partial x\\partial y}+y'\\frac{\\partial^2 g}{\\partial y^2}\n",
    "\\right)\\right]=0,\n",
    "$$ 又因为（Leibniz 公式、复合函数偏导）$$\n",
    "\\frac{\\mathrm{d}}{\\mathrm{d}x}\\left(L_{z'}\n",
    "\\frac{\\partial g}{\\partial y}\\right)=\n",
    "\\left(\\frac{\\mathrm{d}}{\\mathrm{d}x}L_{z'}\\right)\n",
    "\\frac{\\partial g}{\\partial y}+L_{z'}\\left(\\frac{\\partial^2 g}\n",
    "{\\partial x\\partial y}+y'\\frac{\\partial^2 g}{\\partial y^2}\\right)\n",
    "$$ 将它代入上式，化简得 $$\n",
    "\\left(\\frac{\\mathrm{d}}{\\mathrm{d}x}L_{y'}-L_{y}\\right)+\n",
    "\\left(\\frac{\\mathrm{d}}{\\mathrm{d}x}L_{z'}-L_{z}\\right)\n",
    "\\frac{\\partial g}{\\partial y}=0.\n",
    "$$ 又因为把曲面方程 $G(x,y,z)=0$ 对 $y$ 求偏导有$$\n",
    "G_y+G_z\\frac{\\partial g}{\\partial y}=0,\n",
    "$$ 所以通过上面两个关系式，可推得 $$\n",
    "\\left(\\frac{\\mathrm{d}}{\\mathrm{d}x}L_{y'}-L_{y}\\right) :\n",
    "\\left(\\frac{\\mathrm{d}}{\\mathrm{d}x}L_{z'}-L_{z}\\right)\n",
    "=G_y : G_z\n",
    "$$ 把上式的两内项交换，取他们的公比为 $\\lambda(x)$\n",
    "，即推得 $$\n",
    "\\left\\{\\begin{aligned}\n",
    "\\frac{\\mathrm{d}}{\\mathrm{d}x}L_{y'}-L_{y}-\\lambda G_y=&0\\\\\n",
    "\\frac{\\mathrm{d}}{\\mathrm{d}x}L_{z'}-L_{z}-\\lambda G_z=&0,\n",
    "\\end{aligned}\\right.\n",
    "$$ 令 $H=L+\\lambda G$，则由上式推得所求微分方程组."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 球面上的短程线\n",
    "    通过坐标变换，消去约束的解法\n",
    "在球面上连接两定点的所有曲线中，长度最短的曲线在“大圆”上. \n",
    "这个问题中，我们仍然是想要将弧长最小化. \n",
    "\n",
    "取球面坐标，中心在原点，半径为 1，则球面方程为\n",
    "$$\n",
    "x=\\cos\\varphi\\sin\\theta, \\; y=\\sin\\varphi\\sin\\theta, \\; z=\\cos\\theta. \n",
    "$$\n",
    "设 $\\varphi=\\varphi(\\theta)$，则\n",
    "$$\n",
    "(\\mathrm{d}s)^2 = (\\mathrm{d}x)^2 + (\\mathrm{d}y)^2 + (\\mathrm{d}z)^2 \n",
    "= (\\mathrm{d}\\theta)^2 + \\sin^2\\theta(\\mathrm{d}\\varphi)^2 \n",
    "$$\n",
    "在球面上，起点 $P\\left(1,\\theta_0,\\varphi(\\theta_0)\\right)$，\n",
    "终点 $Q\\left(1,\\theta_1,\\varphi(\\theta_1)\\right)$ 的两点间弧长为\n",
    "$$\n",
    "J[\\varphi] = \\int_{\\theta_0}^{\\theta_1}\\sqrt{1+\\sin^2\\theta\n",
    "\\left(\\frac{\\mathrm{d}\\varphi}{\\mathrm{d}\\theta}\\right)^2}\\mathrm{d}\\theta,\n",
    "$$\n",
    "对应的欧拉方程为\n",
    "$$\n",
    "\\frac{\\mathrm{d}}{\\mathrm{d}\\theta}\\left(\n",
    "\\frac{\\partial f}{\\partial \\frac{\\mathrm{d}\\varphi}{\\mathrm{d}\\theta}}\n",
    "\\right)\n",
    "= \\frac{\\mathrm{d}}{\\mathrm{d}\\theta}\\left(\n",
    "\\frac{\\sin^2\\theta \\frac{\\mathrm{d}\\varphi}{\\mathrm{d}\\theta}}\n",
    "{\\sqrt{1+\\sin^2\\theta\\left(\\frac{\\mathrm{d}\\varphi}{\\mathrm{d}\\theta}\\right)^2}}\n",
    "\\right) = 0\n",
    "$$\n",
    "利用首次积分得到\n",
    "$$\n",
    "\\frac{\\sin^2\\theta \\frac{\\mathrm{d}\\varphi}{\\mathrm{d}\\theta}}\n",
    "{\\sqrt{1+\\sin^2\\theta\\left(\\frac{\\mathrm{d}\\varphi}{\\mathrm{d}\\theta}\\right)^2}} = C.\n",
    "$$\n",
    "式中，$C$为积分（待定）常数. 因为上式对于任意 $0\\le\\theta\\le\\pi$ 都成立，如果取 $\\theta=0$，便得到\n",
    "$C=0$. 而当 $0<\\theta<\\pi$，$\\sin\\theta\\ne0$，因此 $\\mathrm{d}\\varphi/\\mathrm{d}\\theta\n",
    "\\equiv0$，即 $\\varphi = C_1$（常数）. 由于球面上的极点可以任意选取，故所求曲线在大圆上. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "短程线的一般问题是：在条件\n",
    "$$\n",
    "G_s(x,y_1,y_2,\\cdots,y_n)=0\\qquad(s=1,2,\\cdots,p;p<n)\n",
    "$$\n",
    "之下，求 $Y_i(x),\\; x\\in[x_1,x_2]\\;(i=1,2,\\cdots,n)$，使得当\n",
    "$y_i=Y_i(x)$ 时有\n",
    "$$\n",
    "\\int_{x_1}^{x_2} L(x,y_1,y_2,\\cdots,y_n,y_1',y_2'\\cdots,y_n')\n",
    "\\mathrm{~d}x=\\min.\n",
    "$$\n",
    "求解的办法是：构造泛函\n",
    "$$\n",
    "\\mathcal{A}[y_1(\\cdot),\\cdots,y_n(\\cdot)]=\n",
    "\\int_{x_1}^{x_2} H\\mathrm{d}x, \\quad \n",
    "\\left(H=F+\\sum_{s=1}^p\\lambda_s(x)G_s\\right)\n",
    "$$\n",
    "由 $\\mathcal{A}[y_1(\\cdot),\\cdots,y_n(\\cdot)]$\n",
    "的欧拉方程\n",
    "$$\n",
    "H_{y_i}-\\frac{\\mathrm{d}}{\\mathrm{d}x}H_{y_i'}=0\\qquad(i=1,2,\\cdots,n)\n",
    "$$\n",
    "和条件 $G_s=0$\n",
    "以及满足相应的的固定边界条件\n",
    "$$\n",
    "y_i(x_1)=y_{i1}\\qquad y_i(x_2)=y_{i2}\\;(i=1,2,\\cdots,n)\n",
    "$$\n",
    "求出 $y_i(x)\\quad(i=1,\\cdots,n)$."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 3.3.3 微分型约束条件\n",
    "    非完整约束\n",
    "当我们在研究动力学问题时，如果约束方程包含位置坐标，同时也包含速度分量，那么就导出一微分方程为约束条件的变分问题. \n",
    "在最优控制中，也提出同样的问题. 一般来说，令附加条件为\n",
    "$$\n",
    "G(x,y,z,y',z')=0\n",
    "$$\n",
    "我们称之为非整约束. \n",
    "当 $G(x,y,z,y',z')$ 不能由另一已知式子 $\\bar\\Psi(x,y,z)$ 对 $x$ 的微分得出，也就是说，$G$ 不是一个可积分的微分式时，则这种带有非整约束的变分问题，就非用乘子法不可. \n",
    "详细地说，以微分方程作为附加条件的变分问题是：在所有满足固定边界条件\n",
    "$$\n",
    "y(x_1)=y_1,\\; y(x_2)=y_2,\\; z(x_1)=z_1,\\; z(x_2)=z_2 \n",
    "$$\n",
    "的光滑函数集合中，求一组函数 $y=y(x),\\; z=z(x)$，满足附加条件（微分方程）$G(x,y,z,y',z')=0$\n",
    "并使泛函 \n",
    "$$\n",
    "\\mathcal{A}[y(\\cdot),z(\\cdot)]=\\int_{x_1}^{x_2} \n",
    "L(x,y,z,y'z')\\mathrm{~d}x\n",
    "$$\n",
    "取极小值. \n",
    "我们指出，在前两节介绍的乘子法仍然有效，并且可以断定：如果\n",
    "$$\n",
    "y=y(x),\\;z=z(x)\n",
    "$$\n",
    "满足边界条件和附加条件，使泛函 $\\mathcal{A}[y(\\cdot),z(\\cdot)]$ 取得极小，且设 $G_{y'}$ 和 $G_{z'}$（当 $y=y(x),\\;z=z(x)$）不同时为零. \n",
    "则存在乘子函数 $\\lambda(x)$，使逗留函数组 $y=y(x),\\;z=z(x)$ 是泛函\n",
    "$$\n",
    "\\int_{x_1}^{x_2} \\left[L+\\lambda(x) G\\right]\\mathrm{~d}x \n",
    "= \\int_{x_1}^{x_2} H\\mathrm{~d}x\n",
    "$$\n",
    "对应的微分方程组\n",
    "$$\n",
    "\\frac{\\partial H}{\\partial y} - \\frac{\\mathrm{d}}{\\mathrm{d}x}\n",
    "\\left(\\frac{\\partial H}{\\partial y'}\\right)=0\\ \\text{、}\n",
    "\\qquad\n",
    "\\frac{\\partial H}{\\partial z} - \\frac{\\mathrm{d}}{\\mathrm{d}x}\n",
    "\\left(\\frac{\\partial H}{\\partial z'}\\right)=0\n",
    "$$\n",
    "的解. \n",
    "\n",
    "上述方程组对 $y,z$ 是二阶微分方程，对 $\\lambda(x)$ 是一阶微分方程，我们可以由附加条件和上述方程组构成的微分方程组及边界条件解出\n",
    "$y=y(x),\\;z=z(x)$. \n",
    "\n",
    "这种问题也可以推广到依赖于 $n$ 个函数 $y_1,\\cdots,y_n$ 的泛函\n",
    "$$\n",
    "\\mathcal{A}[y_1(\\cdot),\\cdots,y_n(\\cdot)]=\\int_{x_1}^{x_2} \n",
    "L(x,y_1,\\cdots,y_n,y_1',\\cdots,y_n')\\mathrm{~d}x\n",
    "$$\n",
    "及 $m$ 个非整约束条件\n",
    "$$\n",
    "G_j(x,y_1,\\cdots,y_n,y_1',\\cdots,y_n')=0\n",
    "\\quad(j=1,2,\\cdots,m)\n",
    "$$\n",
    "的情形，拉格朗日乘子法仍然正确. 亦即在某些条件下，若函数 $y_i(x)\\;\n",
    "(i=1,2,\\cdots,n)$ 满足相应的固定边界条件及非整约束条件，并给泛函\n",
    "$\\mathcal{A}[y_1(\\cdot),\\cdots,y_n(\\cdot)]$ 以极值，则它们应满足泛函\n",
    "$$\n",
    "\\int_{x_1}^{x_2} \\left(L+\\sum_{j=1}^m\\lambda_j G_j\\right)\\mathrm{~d}x \n",
    "= \\int_{x_1}^{x_2} H\\mathrm{~d}x\n",
    "$$\n",
    "对应的微分方程组\n",
    "$$\n",
    "\\frac{\\partial H}{\\partial y_i} - \\frac{\\mathrm{d}}{\\mathrm{d}x}\n",
    "\\left(\\frac{\\partial H}{\\partial y_i'}\\right)=0.\\quad (i=1,2,\\cdots,n)\n",
    "$$"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 3.4 自由边界问题\n",
    "\n",
    "### 3.4.1 依赖于多个函数的情形\n",
    "考虑依赖于两个一元标量函数的泛函\n",
    "$$\n",
    "\\mathcal{A}[y(x),z(x)]=\\int_{x_1}^{x_2} L(x,y,z,y',z')\\mathrm{d}x,\\;y,z\\in C^2[x_1,x_2]\n",
    "$$\n",
    "若左端点 $A(x_1,y_1,z_1)$ 固定，右端点 $B(x_2,y_2,z_2)$ 自由移动，因为泛函在变分下的增量\n",
    "$$\n",
    "\\begin{aligned}\n",
    "\\Delta \\mathcal{A} = &\\int_{x_1}^{x_2+\\delta x_2} L(x,y+\\delta y,z+\\delta z,y'+\\delta y',\n",
    "z'+\\delta z')\\mathrm{d}x - \\int_{x_1}^{x_2} L(x,y,z,y',z')\\mathrm{d}x\\\\\n",
    "= &\\int_{x_2}^{x_2+\\delta x_2} L(x,y+\\delta y,z+\\delta z,y'+\\delta y',z'+\\delta z')\n",
    "\\mathrm{d}x + \\\\&\\int_{x_1}^{x_2}[L(x,y+\\delta y,z+\\delta z,y'+\\delta y',z'+\\delta z') - \n",
    "L(x,y,z,y',z')]\\mathrm{d}x\\\\\n",
    "= &\\left.L(x,y+\\delta y,z+\\delta z,y'+\\delta y',z'+\\delta z')\\right|_{x=x_2}\\delta x_2 + \\\\\n",
    "&\\int_{x_1}^{x_2} (L_y\\delta y+L_{y'}\\delta y'+L_z\\delta z+L_{z'}\\delta z')\\mathrm{d}x + \n",
    "\\mathcal{o}(\\delta)\\\\\n",
    "= &\\left.L\\right|_{x=x_2}\\delta x_2 + \\int_{x_1}^{x_2} \\left[\\left(L_y+\n",
    "\\frac{\\mathrm{d}}{\\mathrm{d}x}L_{y'}\\right)\\delta y+\\left(L_z+\n",
    "\\frac{\\mathrm{d}}{\\mathrm{d}x}L_{z'}\\right)\\delta z\\right]\\mathrm{d}x + \\\\\n",
    "&\\left.L_{y'}\\delta y\\right|_{x=x_2} + \\left.L_{z'}\\delta z\\right|_{x=x_2} + \n",
    "\\mathcal{o}(\\delta),\n",
    "\\end{aligned}\n",
    "$$\n",
    "\n",
    "因此，有泛函一阶变分\n",
    "$$\\begin{aligned}\n",
    "\\delta \\mathcal{A} = &\\int_{x_1}^{x_2} \\left[\\left(L_y+\n",
    "\\frac{\\mathrm{d}}{\\mathrm{d}x}L_{y'}\\right)\\delta y+\\left(L_z+\n",
    "\\frac{\\mathrm{d}}{\\mathrm{d}x}L_{z'}\\right)\\delta z\\right]\\mathrm{d}x + \\\\\n",
    "&\\left.L\\right|_{x=x_2}\\delta x_2 + \\left.L_{y'}\\delta y\\right|_{x=x_2} + \n",
    "\\left.L_{z'}\\delta z\\right|_{x=x_2}.\n",
    "\\end{aligned}\n",
    "$$\n",
    "\n",
    "因极值曲线会使泛函一阶变分等于0，且满足欧拉方程，所以我们有\n",
    "$$\n",
    "\\left.L\\right|_{x=x_2}\\delta x_2 + \\left.L_{y'}\\delta y\\right|_{x=x_2} + \n",
    "\\left.L_{z'}\\delta z\\right|_{x=x_2} = 0.\n",
    "$$\n",
    "\n",
    "但在一般情况下，$\\left.\\delta y\\right|_{x=x_2}\\ne\\delta y_2$. \n",
    "因为 $\\delta y_2$ 考虑了自变量的变化，而 $\\left.\\delta y\\right|_{x=x_2}$ 没有. \n",
    "具体的关系如下：\n",
    "$$\n",
    "\\left.\\delta y\\right|_{x=x_2}=\\delta y_2-y'(x_2)\\delta x_2 + o(\\delta x_2).\n",
    "$$\n",
    "同理，\n",
    "$$\n",
    "\\left.\\delta z\\right|_{x=x_2}=\\delta z_2-z'(x_2)\\delta x_2 + o(\\delta x_2).\n",
    "$$\n",
    "把这两个关系式代入前面的极值曲线边界条件，得到\n",
    "$$\\begin{aligned}\n",
    "&\\left.L\\right|_{x=x_2}\\delta x_2 + \n",
    "\\left.L_{y'}\\right|_{x=x_2}\\left[\\delta y_2-y'(x_2)\\delta x_2\\right] + \n",
    "\\left.L_{z'}\\right|_{x=x_2}\\left[\\delta z_2-z'(x_2)\\delta x_2\\right]\\\\\n",
    "&=\\left.\\left(L-y'L_{y'}-z'L_{z'}\\right)\\right|_{x=x_2}\\delta x_2 + \n",
    "\\left.L_{y'}\\right|_{x=x_2}\\delta y_2 + \n",
    "\\left.L_{z'}\\right|_{x=x_2}\\delta z_2 = 0.\n",
    "\\end{aligned}\n",
    "$$\n",
    "\n",
    "\n",
    "根据 $y,z$ 与 $x$ 之间的关系，下面分几种情形来讨论. \n",
    "1. 当变分 $\\delta x_2, \\delta y_2, \\delta z_2$ 都可以取任意值且\n",
    "**相互无关**时，得到自由边界条件\n",
    "$$\n",
    "\\left.\\left(L-y'L_{y'}-z'L_{z'}\\right)\\right|_{x=x_2}=0,\\ \n",
    "\\left.L_{y'}\\right|_{x=x_2}=0,\\ \n",
    "\\left.L_{z'}\\right|_{x=x_2}=0.\n",
    "$$\n",
    "即\n",
    "$$\n",
    "\\left.L\\right|_{x=x_2}=0,\\ \n",
    "\\left.L_{y'}\\right|_{x=x_2}=0,\\ \n",
    "\\left.L_{z'}\\right|_{x=x_2}=0.\n",
    "$$通常情况下，上述条件无解. \n",
    "\n",
    "1. 如果端点 $B$ 在曲线 $y=\\varphi(x),\\;z=\\psi(x)$ 上移动，这时 $\\delta y_2=\\varphi'(x_2)\n",
    "\\delta x_2$, $\\delta z_2=\\psi'(x_2)\\delta x_2$，从前面的推导中可得到横截条件：\n",
    "$$\n",
    "\\left.\\left[f+(\\varphi'-y')L_{y'}+(\\psi'-z')L_{z'}\\right]\\right|_{x=x_2} = 0.\n",
    "$$\n",
    "1. 如果端点 $B$ 沿着某一曲面 $\\Phi(x,y,z)=0$ 变动，这时 $\\Phi_{x}\\delta x + \\Phi_y\\delta y + \\Phi_z\\delta z = 0.$\n",
    "设 $\\Phi_z\\ne0$，则可解出\n",
    "$$\n",
    "\\delta z=-\\frac{\\Phi_x}{\\Phi_z}\\delta x-\\frac{\\Phi_y}{\\Phi_z}\\delta y,\n",
    "$$\n",
    "代入泛函一阶变分，得到\n",
    "$$\\begin{aligned}\n",
    "\\delta \\mathcal{A} =& \\left[L-y' L_{y'}-z' L_{z'}\\right]_{x=x_2}\\delta x+\n",
    "\\left.L_{y'}\\right|_{x=x_2}\\delta y+\\left.L_{z'}\\right|_{x=x_2}\\delta z\\\\\n",
    "=& \\left[L-y' L_{y'}-z' L_{z'}-L_{z'}\\frac{\\Phi_x}{\\Phi_z}\\right]_{x=x_2}\\delta x+\n",
    "\\left[L_{y'}-L_{z'}\\frac{\\Phi_y}{\\Phi_z}\\right]_{x=x_2}\\delta y = 0\n",
    "\\end{aligned}\n",
    "$$\n",
    "由于 $\\delta x$ 与 $\\delta y$ 是任意的，故边界条件为\n",
    "$$\n",
    "\\left\\{\n",
    "\\begin{aligned}\n",
    "L-y' L_{y'}-z' L_{z'}-L_{z'}\\frac{\\Phi_x}{\\Phi_z} &=0\\\\\n",
    "L_{y'}-L_{z'}\\frac{\\Phi_y}{\\Phi_z} &=0\n",
    "\\end{aligned}\n",
    "\\right.\n",
    "$$\n",
    "将上式与曲面方程联立，即可求出极值曲线. \n",
    "\n",
    "1. 若端点 $B$ 沿曲面 $z=\\phi(x,y)$ 变动，由隐函数存在定理，有\n",
    "$\\phi_x = - \\Phi_x/\\Phi_z, \\phi_y = - \\Phi_y/\\Phi_z$. \n",
    "则相应的横截条件为\n",
    "$$\n",
    "\\left\\{\n",
    "\\begin{aligned}\n",
    "L-y' L_{y'}-z' L_{z'}+L_{z'}\\phi_x &=0\\\\\n",
    "L_{y'}-L_{z'}\\phi_y &=0\n",
    "\\end{aligned}\n",
    "\\right.\n",
    "$$\n",
    "联立这两个条件和曲面表达式，可以确定欧拉方程组通解中的任意常数. \n",
    "\n",
    "1. 若端点 $B$ 可在空间平面 $x=x_2$ 上变动，则 $\\delta x=0$，$\\delta y$ 和 $\\delta z$ 可取任意值，自然边界条件为\n",
    "$$\n",
    "\\left.L_{y'}\\right|_{x=x_2}=0,\\quad \\left.L_{z'}\\right|_{x=x_2}=0\n",
    "$$\n",
    "\n",
    "1. 若是两个端点都能自由移动，那么可得到类似的横截条件. \n",
    "\n",
    "**推论**【多元泛函的可动边界变分问题】\n",
    "考虑泛函\n",
    "$$\n",
    "\\mathcal{A}=\\int_{x_1}^{x_2} L(x,y_1,\\cdots,y_n,y_1',\\cdots,y_n')\\mathrm{~d}x,\\; y_i\\in C^2[x_1,x_2]\n",
    "$$\n",
    "重复上面的讨论，我们得到在可动端点 $B(x_2,y_{12},y_{22},\\cdots,y_{n2})$ 需要满足边界条件\n",
    "$$\\boxed{\n",
    "\\left[L-\\sum_{i=1}^n y_i' L_{ y_i'}\\right]_{x=x_2}=0, \\quad\n",
    "\\left.L_{ y_i'}\\right|_{x=x_2}=0 \\quad (i=1,2,\\cdots,n)}\n",
    "$$"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 3.4.2 依赖于函数参数表示的情形\n",
    "**定理**\n",
    "设给定容许函数类 $X$，它们有连续旋转的切线，其端点分别在由方程\n",
    "$\\varphi(x,y)=0$ 和 $\\psi(x,y)=0$ 所确定的曲线 $X_1$ 和 $X_2$ 上，\n",
    "且容许函数类 $C$ 可用参数方程 $x=x(t)$ 和 $y=y(t)$ 表示. \n",
    "若泛函\n",
    "$$\n",
    "\\mathcal{A}[x(t),y(t)]=\\int_{t_0}^{t_1} L\\left(x(t),y(t),\n",
    "\\dot{x}(t),\\dot{y}(t)\\right)\\mathrm{d}t\n",
    "$$\n",
    "在所给定的容许函数类 $X$ 上取得极值，则泛函满足欧拉方程组\n",
    "$$\n",
    "L_x-\\frac{\\mathrm{d}}{\\mathrm{d}t}L_{\\dot{x}}=0,\\;\n",
    "L_y-\\frac{\\mathrm{d}}{\\mathrm{d}t}L_{\\dot{y}}=0\n",
    "$$\n",
    "且在曲线 $X$ 的端点处满足下面关系\n",
    "$$\n",
    "\\begin{aligned}\n",
    "\\frac{L_{\\dot{x}}}{\\varphi_x}&=\\frac{L_{\\dot{y}}}{\\varphi_y}\n",
    "\\quad(\\text{在位于曲线}X_1\\text{上的端点处})\\\\\n",
    "\\frac{L_{\\dot{x}}}{\\psi_x}&=\\frac{L_{\\dot{y}}}{\\psi_y}\n",
    "\\quad(\\text{在位于曲线}X_2\\text{上的端点处})\n",
    "\\end{aligned}\n",
    "$$\n",
    "上面两式称为**横截条件**.\n",
    "\n",
    "如果曲线 $X_1$ 和 $X_2$ 中有一条或两条化为一点即端点固定，则对应的横截条件就应变成使 $X$ 通过该点的条件. \n",
    "\n",
    "**证明**\n",
    "把泛函 $\\mathcal{A}[x(t),y(t)]$ 看成空间 $(t,x,y)$ 中的曲线 $x=x(t)$、$y=y(t)$ 的函数. \n",
    "设曲线 $X: x=x(t),\\;y=y(t)$ 是 $xOy$ 平面上任一容许曲线，它与曲线 $X_1$ 和 $X_2$ 相联接. \n",
    "以 $Q$、$\\Phi$ 和 $\\Psi$ 表示空间 $(t,x,y)$ 中由方程 $x=x(t)$、$y=y(t)$ 所确定的曲线. \n",
    "显然曲线 $\\bar{X}$ 属于曲线 $X$，并且其端点在曲面 $\\Phi$ 与 $\\Psi$ 上. \n",
    "$\\bar{X}$ 在 $xOy$ 平面的投影是曲线 $X$. \n",
    "平面曲线 $X$ 的所有参数表达式将对应于空间 $(t,x,y)$ 中所有曲线 $\\bar{X}$，它们均在柱面 $Q$ 上，并且与 $\\Phi$ 和 $\\Psi$ 上的点联接. \n",
    "由于泛函 $\\mathcal{A}[X]$ 只依赖于曲线 $X$ 的形状，而不依赖于它的参数表示法，所以空间曲线的泛函\n",
    "$$\n",
    "\\mathcal{A}_s[\\bar{X}]=\\int_{\\bar{X}}L(x,y,\\dot{x},\\dot{y})\\mathrm{~d}t\n",
    "$$\n",
    "也只依赖于柱面 $Q$ 的形状. 于是可知，如果曲线 $X$ 使泛函 $\\mathcal{A}[X]$ 取得极值，则 $\\mathcal{A}_s[\\bar{X}]$ 也取得极值. \n",
    "根据空间曲线泛函极值的基本理论，沿着极值曲线有欧拉方程组\n",
    "$$\n",
    "L_x-\\frac{\\mathrm{d}}{\\mathrm{d}t}L_{\\dot{x}}=0,\\;\n",
    "L_y-\\frac{\\mathrm{d}}{\\mathrm{d}t}L_{\\dot{y}}=0\n",
    "$$\n",
    "并且在端点有横截条件\n",
    "$$\n",
    "\\begin{aligned}\n",
    "\\left.\\left(L-\\dot{x}L_{\\dot{x}}-\\dot{y}L_{\\dot{y}}\\right)\\right|_{t=t_0}\\delta t_0 + \n",
    "\\left.L_{\\dot{x}}\\right|_{t=t_0}\\delta x_0 + \n",
    "\\left.L_{\\dot{y}}\\right|_{t=t_0}\\delta y_0 &= 0\\\\\n",
    "\\left.\\left(L-\\dot{x}L_{\\dot{x}}-\\dot{y}L_{\\dot{y}}\\right)\\right|_{t=t_1}\\delta t_1 + \n",
    "\\left.L_{\\dot{x}}\\right|_{t=t_1}\\delta x_1 + \n",
    "\\left.L_{\\dot{y}}\\right|_{t=t_1}\\delta y_1 &=0\n",
    "\\end{aligned}\n",
    "$$\n",
    "上面两个式子可写成统一的形式\n",
    "$$\n",
    "\\left(L-\\dot{x}L_{\\dot{x}}-\\dot{y}L_{\\dot{y}}\\right)\\delta t + \n",
    "L_{\\dot{x}}\\delta x + L_{\\dot{y}}\\delta y = 0\n",
    "$$\n",
    "式中，$\\delta t$、$\\delta x$ 和 $\\delta y$ 是端点在曲线 $\\bar{X}$ 上作可能的移动时，端点坐标的改变量. \n",
    "\n",
    "将齐次条件式 $L(x,y,k\\dot{x},k\\dot{y})=k L(x,y,\\dot{x},\\dot{y})$ 两边对 \n",
    "$k$ 求偏导，然后令 $k=1$，得到\n",
    "$$\n",
    "L-\\dot{x}L_{\\dot{x}}-\\dot{y}L_{\\dot{y}}=0\n",
    "$$\n",
    "于是横截条件变为\n",
    "$$\n",
    "L_{\\dot{x}}\\delta x + L_{\\dot{y}}\\delta y = 0\n",
    "$$\n",
    "在曲线 $X_1$ 上的端点有 $\\varphi(x,y)=0$，对其取变分，有\n",
    "$$\n",
    "\\varphi_x \\delta x+\\varphi_y \\delta y=0\n",
    "$$\n",
    "将上面两个式子移项后再作商，可解得与变分无关的一个恒等式\n",
    "$$\n",
    "\\frac{L_{\\dot{x}}}{\\varphi_x}=\\frac{L_{\\dot{y}}}{\\varphi_y}\n",
    "$$\n",
    "\n",
    "同理，对于另一个端点也可以得到一样的结果. \n",
    "\n",
    "---\n",
    "**推论**\n",
    "设给定的容许曲线类 $X$，它们有连续旋转的切线，其端点分别在由方程\n",
    "$\\varphi_i(x,y_i)=0$ 和 $\\psi_i(x,y_i)=0\\;(i=1,2,\\cdots,n)$\n",
    "所确定的曲线 $X_1$ 和 $X_2$ 上，且容许曲线类 $X$ 可用参数方程\n",
    "$x=x(t), y_1=y_1(t), y_2=y_2(t),\\cdots, y_n=y_n(t)$ 表示. 若泛函\n",
    "$$\n",
    "\\mathcal{A}[x,y_1,y_2,\\cdots,y_n]=\\int_{t_0}^{t_1} L\\left(x,y_1,y_2,\\cdots,\n",
    "y_n,\\dot{x},\\dot{y}_1,\\dot{y}_2,\\cdots,\\dot{y}_n\\right)\\mathrm{d}t\n",
    "$$\n",
    "在所给定的容许曲线类 $X$ 上取得极值，$L$ 是\n",
    "$\\dot{x},\\dot{y}_1,\\dot{y}_2,\\cdots,\\dot{y}_n$ \n",
    "的齐次函数，则泛函满足欧拉方程组\n",
    "$$\n",
    "L_x-\\frac{\\mathrm{d}}{\\mathrm{d}t}L_{\\dot{x}}=0,\\quad\n",
    "L_{y_i}-\\frac{\\mathrm{d}}{\\mathrm{d}t}L_{\\dot{y}_i}=0\\quad\n",
    "(i=1,2,\\cdots,n)\n",
    "$$\n",
    "且在曲线 $X$ 上的端点处满足下面的关系式\n",
    "$$\n",
    "\\begin{aligned}\n",
    "L_{\\dot{x}}&=\\sum_{i=1}^n L_{\\dot{y}_i}\n",
    "\\frac{\\varphi_{ix}}{\\varphi_{i{y_i}}}\n",
    "\\quad(\\text{在位于曲线}X_1\\text{上的端点处})\\\\\n",
    "L_{\\dot{x}}&=\\sum_{i=1}^n L_{\\dot{y}_i}\n",
    "\\frac{\\psi_{ix}}{\\psi_{i{y_i}}}\n",
    "\\quad(\\text{在位于曲线}X_2\\text{上的端点处})\n",
    "\\end{aligned}\n",
    "$$\n",
    "上述两式称为横截条件. \n",
    "\n",
    "如果曲线 $X_1$ 和 $X_2$ 中有一条或两条化为一点即端点固定，则对应的横截条件就应变成使 $X$ 通过该点的条件. "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 3.4.3 可变端点的等周问题\n",
    "\n",
    "### 3.4.4 依赖于两个二元函数的情形"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2021-02-03T18:23:36+08:00",
     "start_time": "2021-02-03T10:23:36.298Z"
    }
   },
   "outputs": [],
   "source": [
    "(*wolfram 语言 传统格式输出转换 ———— 偏导\n",
    "来源: \n",
    "https://blog.wolfram.com/2011/12/15/mathematica-qa-series-converting-to-conventional-mathematical-typesetting/\n",
    "*)\n",
    "pdConv[f_] := \n",
    " TraditionalForm[\n",
    "  f /. Derivative[inds__][g_][vars__] :> \n",
    "    Apply[Defer[D[g[vars], ##]] &, \n",
    "     Transpose[{{vars}, {inds}}] /. {{var_, 0} :> \n",
    "        Sequence[], {var_, 1} :> {var}}]]"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Wolfram Language 12.1",
   "language": "Wolfram Language",
   "name": "wolframlanguage12.1"
  },
  "language_info": {
   "codemirror_mode": "mathematica",
   "file_extension": ".m",
   "mimetype": "application/vnd.wolfram.m",
   "name": "Wolfram Language",
   "pygments_lexer": "mathematica",
   "version": "12.0"
  },
  "toc": {
   "base_numbering": 1,
   "nav_menu": {
    "height": "280px",
    "width": "287px"
   },
   "number_sections": false,
   "sideBar": true,
   "skip_h1_title": true,
   "title_cell": "Table of Contents",
   "title_sidebar": "Contents",
   "toc_cell": false,
   "toc_position": {},
   "toc_section_display": true,
   "toc_window_display": false
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
